Update to latest and breaking protobuf?

Hello, I think this issue may be a bit tricky. According to this change a few things have changed with the latest protobuf package. Issue https://github.com/grpc/grpc/issues/31064 is an illustration of that, and I see something similar with the grpc-interceptor package:
tests/test_interceptors.py:12: in <module>
    from grpc_interceptor.testing import DummyRequest, dummy_client, raises
.venv/lib/python3.10/site-packages/grpc_interceptor/testing/__init__.py:5: in <module>
    from grpc_interceptor.testing.dummy_client import (
.venv/lib/python3.10/site-packages/grpc_interceptor/testing/dummy_client.py:14: in <module>
    from grpc_interceptor.testing.protos import dummy_pb2_grpc
.venv/lib/python3.10/site-packages/grpc_interceptor/testing/protos/dummy_pb2_grpc.py:4: in <module>
    from grpc_interceptor.testing.protos import (
.venv/lib/python3.10/site-packages/grpc_interceptor/testing/protos/dummy_pb2.py:35: in <module>
    _descriptor.FieldDescriptor(
.venv/lib/python3.10/site-packages/google/protobuf/descriptor.py:560: in __new__
    _message.Message._CheckCalledFromGeneratedFile()
E   TypeError: Descriptors cannot not be created directly.
E   If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
E   If you cannot immediately regenerate your protos, some other possible workarounds are:
E    1. Downgrade the protobuf package to 3.20.x or lower.
E    2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).
E
E   More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates

It looks to me that integrating that change will be a breaking change for this package as well 🤔

Hi @jenstroeger
This was fixed by https://github.com/d5h-foss/grpc-interceptor/pull/18, so I think all you need to do is update to 0.14.2 or higher. 🙂
I'll close this for now, but if you have issues with a later version feel free to reopen.

Well I be damned 👍🏼  Thanks!


[function] fix update user config

Fixes #10720
Motivation
fix update user config

In this way, userConfigMap  will be null if user does not set user config. We need to confirm if this will cause Conext.getUserConfigMap() return null. In that condition, user may get NPE if they do not handle null in there function code.

In this way, userConfigMap  will be null if user does not set user config. We need to confirm if this will cause Conext.getUserConfigMap() return null. In that condition, user may get NPE if they do not handle null in there function code.

@wangjialing218
I think it's a normal case.
Because user always need to judge not null when access a member of object, it's programing specification.

@nlu90 @freeznet Can you review this?

@linlinnn could you describe what's the difference between your change and the original one?
Based on my understanding, they are kind of equivalent. Your change set the empty hashmap inside the userConfigString while the previous one set it after the if clause

@nlu90 The previous one clear userConfig if no userConfigString provided, and this change keep the userConfig same as before.

@freeznet done, please help review.

/pulsarbot run-failure-checks


Exems by Humeniuk Katya IM-23

Please submit google form for exams

Please submit google form for exams

I've already submitted google form

Check it again I can't found your data

Check it again I can't found your data

Sent again, sorry


mitmweb relative path support doesn't still support flows related requests

Problem Description
Hi,
Thank you for your great project!
In this pull request - https://github.com/mitmproxy/mitmproxy/pull/6411 - relative paths support was introduced, which is great, but still it has few bugs related to flows requests: For example, when running the web interface under http://<IP_ADDRESS>/mitmweb the "Save" menu item to download the flows doesn't work, as it redirects the browser to /flows/dump, which is a root relative path again.
Searching with chrome DevTools for "/flows" with the leading slash reveals more potential occurrences for this bug.
Steps to reproduce the behavior:

Run mitmweb under a sub path
Capture some traffic
Try to save it with the "Save" menu item

System Information
10.1.5

@mhils is this still an open issue?

I think it is not solved yet. If someone is able to help me with #6562 then I'm happy to finish it. Alternatively, they could create a new PR starting from where I got to.

I think it is not solved yet. If someone is able to help me with #6562 then I'm happy to finish it. Alternatively, they could create a new PR starting from where I got to.

Yes, I can try to help! :) First, may I ask how you can start mitmweb under a subpath? Second, was your problem mainly due to failing tests?

@lups2000 Yes, the main issue was the tests. I'd be grateful for your help!
The reason I was running under a subpath was by adding mitmproxy as a home assistant addon:
https://github.com/davet2001/home-assistant-addons

@lups2000 Yes, the main issue was the tests. I'd be grateful for your help!
The reason I was running under a subpath was by adding mitmproxy as a home assistant addon: https://github.com/davet2001/home-assistant-addons

okay!  Could you please tell me how to run mitmweb under a subpath in order to test the issue/your code? thanks :)

@lups2000 I was using a home assistant addon which creates a proxy operating at a sub path, then forwards everything to a docker container.
It been a little while since I've worked on it so I can't remember precise details of how to get it running, but effectively it is an addon development environment for home assistant.
This creates multiple docker containers which talk to each other.
The front end web server at the base url is in one container and the mitmweb server is running in another.
I used vscode.


Terrain invisible when closing and returning to scene

Hello, i have an issue with the plugin when if I save and close the project and I come back later, the terrain disappears and turns invisible. Updating the terrain fixes the problem, but it also removed foliage that have been scattered with another plugin, spatial gardener. When this happens, when I open the project again I am in a different scene. This might mean this is caused when I save and close in another scene, but I am yet to do more testing

This is also possibly caused by the spatial gardener plugin itself, so I will try updating the plugin and replicating the issue.

I can confirm this happens without that plugin. You can also reload the scene to fix it.

Alright! I'll check what could be the cause, I just had this issue as well, trying it.

Can confirm that spatial gardener was not related to the issue. After updating, the foliage stayed existant, so this might be an issue that the creator of spatial gardener fixed

I will open a new issue for spatial gardener as well.

Hey @HEofOttoman , is there any way for you to test the branch fix/terrain-not-loading-if-not-active-scene, it should fix the problem but I'd like to make sure it works for you before I push it to main 🙂

Hey @HEofOttoman , is there any way for you to test the branch fix/terrain-not-loading-if-not-active-scene, it should fix the problem but I'd like to make sure it works for you before I push it to main 🙂

Ok sure, but one question, how do I update the plugin?

Remove the terrabrush folder from your project and add the new downloaded one from GitHub (you can clone it or download a zip) 🙂

Oh, I also answered, strange, don't you see the answer?
Anyways, here :
Remove the terrabrush folder from your project and add the new downloaded one from GitHub (you can clone it or download a zip) 🙂

ok thanks!

Update: It seems to be fixed, but before I updated I could not replicate the issue

Edit: Nope, the issue is back

You are still on the the branch, right?
Make sure you compile the project as well (with the hammer button)

yep,

That is strange, is there anyway for you to share the project with me? Feel free to remove anything that you dont want to share, as long as I can reproduce the situation.
If needed, we can chat on discord, on my server (https://discord.gg/km99TVXEGr)

@HEofOttoman  any news on that 🙂?

I have joined the discord server

@HEofOttoman Cool, I'm not sure I've seen you there but anyway, I did merge the pull request I was talking about (v0.7.1Alpha).
I think it fixes the issue but if it's not the case, a sample project would help a ton!
I'll wait to see if you can still reproduce it and in few days I'll close the issue if it's not the case (feel free to reopen one if needed 🙂)

It seems to be fixed now, thank you very much


Add a tutorial for text data

Adds a tutorial highlighting the Text Featurizer and the significant performance improvements it allows!

Thanks! I'll check back when the docs are done building, should be visible here. The RTD build is queued at the moment, lots building.

I see the docs generated! Reviewing now

I see the windows checkin tests failed. There's been a new flake lately with the conda installation on windows. If you rerun, should be all set.


Update Set-SPEnterpriseSearchLinguisticComponentsStatus.md

Updated example format.

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

sharepoint/sharepoint-ps/sharepoint-server/Set-SPEnterpriseSearchLinguisticComponentsStatus.md
:white_check_mark:Succeeded
View (sharepoint-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Improve Footer of the website

Is your feature request related to a problem? Please describe.
I want to improve the footer of the website as it is not looking good.
Describe the solution you'd like
I want to add social links and short description of the website and the navlinks properly .
Please assign me this issue under GSSOC'24

Do one more thing when we are click on links in footer it is not redirecting to that particular section. So fix that too

Plz assign me this issue under GSSOC.'24
I can improve the footer of the website.

Hi anuragverma108,
Could you please assign me this issue under gssoc'24.
Try my best to solve this issue.
Thanks

@anuragverma108 if anyone failed to wrk on this issue  Assign me this issue to me under GSSoc'24 and add lables to it,  so that i can work on it

@anuragverma108 Please assign me this issue


feat: gossiping the latest valset in P2P layer in case they get pruned

Overview
Closes https://github.com/celestiaorg/orchestrator-relayer/issues/556
Checklist

[ ] New and updated code has appropriate documentation
[ ] New and updated code has new and/or updated testing
[ ] Required CI checks are passing
[ ] Visual proof for any user facing features like CLI or documentation updates
[ ] Linked issues closed with keywords

only some minor comments, but otherwise LGTM

Actually, I am facing an issue with the serialization of date to json. If you check the CI, you will see the tests failing, however, they're not failing locally. But when I use a different environment, they still fail expecting different time. So, I am thinking of actually omitting the time during serialization since it's not needed to create the hash or calculate the threshold etc.

@evan-forbes I did 755ff25 to fix the issue of serialization via creating a struct that doesn't have the time field which was troublesome.
The time field is only used for pruning in the state machine. However, it's not part of the hash nor the threshold calculations. So, it made sense to remove it instead of dealing with serialization issues.
What do you think?

the getting rid of the time makes sense.
in the past with serializing time that needed to be kept, I've often had to overwrite marshaling methods to fix that one annoying type.

I've often had to overwrite marshaling methods to fix that one annoying type.

Can you link me to some code that does this? I'm curious

Added the changes discussed async. Will wait until we test this using an archive node to merge.

Codecov Report

Merging #560 (e5a05a5) into main (77134ee) will increase coverage by 0.56%.
Report is 4 commits behind head on main.
The diff coverage is 37.12%.

@@            Coverage Diff             @@
##             main     #560      +/-   ##
==========================================
+ Coverage   34.23%   34.80%   +0.56%
==========================================
  Files          26       27       +1
  Lines        2100     2221     +121
==========================================
+ Hits          719      773      +54
- Misses       1295     1354      +59
- Partials       86       94       +8

Files
Coverage Δ

p2p/keys.go
83.33% <100.00%> (+0.98%)
:arrow_up:

p2p/validators.go
86.25% <100.00%> (+4.25%)
:arrow_up:

orchestrator/broadcaster.go
82.35% <40.00%> (-17.65%)
:arrow_down:

evm/evm_client.go
50.31% <0.00%> (-1.95%)
:arrow_down:

p2p/querier.go
72.85% <0.00%> (-2.15%)
:arrow_down:

rpc/app_querier.go
0.00% <0.00%> (ø)

p2p/dht.go
65.78% <62.50%> (-6.26%)
:arrow_down:

orchestrator/orchestrator.go
2.04% <0.00%> (+0.12%)
:arrow_up:

types/latest_valset.go
28.94% <28.94%> (ø)

relayer/relayer.go
0.00% <0.00%> (ø)

I will merge this and test it once we have an archive node ready for testing. And if something is broken, we can fix it in a separate PR.


Remove publishing of public assets

The commit removes the automatic publishing of Backpack's public assets during the backpack:install -q -n command. This change ensures that asset deployment is only handled by the backpack:publish-header-metas command, as intended. See https://github.com/Laravel-Backpack/CRUD/pull/5552#issuecomment-2271093574
WHY
BEFORE - What was wrong? What was happening before this PR?
Previously, when running the backpack:install -q -n command, public assets were automatically deployed to the public/ directory, even though this was not desired. This behavior led to unnecessary asset installation during the general installation process, which was redundant and could cause conflicts with other commands like backpack:publish-header-metas.
AFTER - What is happening after this PR?
After this PR, the backpack:install -q -n command no longer deploys public assets by default. The responsibility for asset deployment now lies solely with the backpack:publish-header-metas command, giving developers more control over when and where assets are deployed.
HOW
How did you achieve that, in technical terms?
I removed the logic responsible for publishing the public assets from the backpack:install command in the BackpackServiceProvider class. This ensures that assets are no longer automatically published during the installation process.
Is it a breaking change?
No, this is not a breaking change. The change simply prevents unwanted asset deployment during the installation process. The backpack:publish-header-metas command should be used for asset deployment instead.
How can we test the before & after?
To test before the PR:

Run the php artisan backpack:install -q -n command.
Check the public/ directory and observe that public assets are automatically installed.

To test after the PR:

Run the php artisan backpack:install -q -n command.
Check the public/ directory and confirm that no assets are installed.
Run the php artisan backpack:publish-header-metas command.
Confirm that the assets are correctly deployed to the public/ directory.

--
cc @pxpm

Hello @dimer47
Thanks for the PR, @pxpm will check and if everything is ok will be merge.
Cheers.

Lovelly! Thanks @dimer47 for reporting the issue and providing the PR 🙏


Not working with useLocation

It's my storybook configuration:

It's my story:

The error; useLocation() may be used only in the context of a  component.

Hi 👋 can you please share all the code involved (with stackblitz for example) ? So I can reproduce the issue and poke around to find the issue.

I managed to get it working, it was project setup where I was using react-router-dom as an external library. thanks!


Fix ndent rule with tabulators

Codecov Report

Merging #339 (7c9aaad) into master (23debfb) will decrease coverage by 1.14%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #339      +/-   ##
==========================================
- Coverage   97.48%   96.34%   -1.15%
==========================================
  Files          23       23
  Lines        1951     1943       -8
==========================================
- Hits         1902     1872      -30
- Misses         49       71      +22

Impacted Files
Coverage Δ

robocop/checkers/spacing.py
97.43% <100.00%> (-1.29%)
:arrow_down:

robocop/checkers/misc.py
92.68% <0.00%> (-4.90%)
:arrow_down:

robocop/checkers/documentation.py
96.00% <0.00%> (-4.00%)
:arrow_down:

robocop/checkers/comments.py
96.92% <0.00%> (-3.08%)
:arrow_down:

robocop/checkers/errors.py
94.73% <0.00%> (-2.64%)
:arrow_down:

robocop/utils/utils.py
96.34% <0.00%> (-2.46%)
:arrow_down:

robocop/checkers/__init__.py
90.80% <0.00%> (-2.30%)
:arrow_down:

robocop/checkers/naming.py
97.12% <0.00%> (-1.74%)
:arrow_down:

robocop/checkers/lengths.py
98.70% <0.00%> (-1.30%)
:arrow_down:

... and 2 more

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 23debfb...7c9aaad. Read the comment docs.


OCaml Support

Hi,
This is a feature request so I didn't follow the issue template since the questions were not applicable. I am wondering if an OCaml binding is on the roadmap.

@hsaliak Are you aware of any 3rd party implementation? I tried to google but couldn't find anything.

@shinzui I tried googling as well before answering you earlier, but unfortunately I could not find anything. What's your use case? It may be worth asking about this in our grpc-io mailing list - https://groups.google.com/forum/#!topic/grpc-io/WvleL0gTeIA

We're moving to GRPC for our microservices and I'm concerned that would make it impossible to write a microservice in OCaml. We're mostly a node shop and we're exploring Go, but there are some domains where I would like to use OCaml for.

@shinzui: the magic of open source (and an open and unencumbered protocol) means that we can't stop you from implementing gRPC for OCaml. In terms of getting gRPC OCaml put onto our roadmap: we think that an implementation's passing our interop tests is a good point at which to consider integrating it into the main project.

Oh, and my heart will always belong to SML/NJ.

That's more of a guarantee than I meant to indicate. Let's say that when an implementation passes the interop tests that's when we start the conversation about how to get the implementation incorporated into the project.


Prepare Release-1.7 branches

This issue aims to track all steps needed to prepare the release 1.7 branches/builds.
Please add all steps taken here so we can document for future releases

[x] Set up release manager team (owner: JimmyCYJ) - Make sure the new team has write access to the repositories.
[x] Update dependencies. This must be done before branching so that PRs can be easily backported later. (owner: JimmyCYJ https://github.com/istio/istio/pull/25707)
Run the following command in istio/istio UPDATE_BRANCH=master ./bin/update_deps.sh; make gen
[x] Adjust istio/proxy to correct version of istio/envoy (https://github.com/istio/proxy/pull/2938)
[x] Create a release-1.7 branch in every Istio repo - run commands export org=xyz ; export repo=xyz ; (git clone git@github.com:${org}/${repo}.git && cd $repo && git checkout -b release-1.7 && git push --set-upstream origin release-1.7).

 Modify prow/config.yaml in test-infra to add release manages as owners for branch. https://github.com/istio/test-infra/pull/2820
[x] Update all repos that point to master branch of another repo to point to the release branch. master-latest-daily -> 1.7-dev (see https://discuss.istio.io/t/deprecation-notice-daily-builds/3991), latest -> 1.7-dev, git clone master to git clone release-1.5, etc. Commit a PR into every release-1.7 branch to modify every CODEOWNERS to contain only the release managers for this release. Command: export org=xyz ; export repo=xyz ; (git clone git@github.com:${org}/${repo}.git && cd $repo && git checkout release-1.7 && git checkout -b release-1.7-codeowners && echo '* @istio/release-managers-1-7' > CODEOWNERS && git add CODEOWNERS && git commit -m 'Set release managers as CODEOWNERS for release-1.7' && git push --set-upstream origin release-1.7-codeowners).

[x] istio/istio (https://github.com/istio/istio/pull/25715)
[x] istio/pkg (https://github.com/istio/pkg/pull/195)
[x] istio/api (https://github.com/istio/api/pull/1544)
[x] istio/envoy (https://github.com/istio/envoy/pull/239)
[x] istio/proxy (https://github.com/istio/proxy/pull/2932)
[x] istio/client-go (https://github.com/istio/client-go/pull/206)
[x] istio/tools (https://github.com/istio/tools/pull/1097)
[x] istio/common-files (https://github.com/istio/common-files/pull/285)
[x] istio/gogo-genproto (https://github.com/istio/gogo-genproto/pull/112)
[x] istio/release-builder (https://github.com/istio/release-builder/pull/324)
[x] istio/release-builder branch change in build.sh too! (https://github.com/istio/release-builder/pull/325)

[x] Update common-files in new release. You first have to manually update the common/Makefile.common.mk update-common target to point to the new release and then run 'make update-common'. It may be that this step could be combined in the prior step in the 'make update-common' was done before the branch.

[x] istio/common-files should have the branch updated above. (https://github.com/istio/common-files/pull/286)
[x] istio/istio (https://github.com/istio/istio/pull/25759)
[x] istio/pkg (https://github.com/istio/pkg/pull/196)
[x] istio/api (https://github.com/istio/api/pull/1547)
[x] istio/envoy (not needed)
[x] istio/client-go (https://github.com/istio/client-go/pull/208)
[x] istio/gogo-genproto (https://github.com/istio/gogo-genproto/pull/113)
[x] istio/proxy (https://github.com/istio/proxy/pull/2940)
[x] istio/release-builder (https://github.com/istio/release-builder/pull/325)
[x] istio/tools (https://github.com/istio/tools/pull/1098)

[x] Bump master to version 1.8 (https://github.com/istio/istio/pull/25742)
[x] Stop publishing latest tags (owner: JimmyCYJ https://github.com/istio/istio/pull/25764)
[x] Add new label: cherrypick/release-1.8 (https://github.com/istio/bots/pull/237)
[x] Run the long-running tests on the dev builds (owner: richardwxn)
[x] Send an announcement on Discuss (https://discuss.istio.io/t/1-7-release-branch-cut/7610)
[ ] Add release lock for release 1.7 in master branch of API repo. (https://github.com/istio/api/pull/1551)
[x] Update build tools

[x] Update istio/tools to build with release-1.7 build image (owner: JimmyCYJ https://github.com/istio/tools/pull/1098)
[x] Update istio/common-files to set release-1.7 build image (owner: JimmyCYJ https://github.com/istio/common-files/pull/286, https://github.com/istio/common-files/pull/287)

[x] Publish an alpha release

[x] Trigger a 1.7 alpha build (JimmyCYJ: https://github.com/istio/release-builder/pull/328)
[x] Publish a 1.7 alpha release (JimmyCYJ: https://github.com/istio/release-builder/pull/329, https://github.com/istio/release-builder/pull/330)

See https://github.com/istio/istio/issues/22078 for the 1.6 release branch

FWIW for future release managers creating the branches can be done with:
REPOS=(istio pkg api proxy client-go tools common-files gogo-genproto release-builder)
ORGS=(istio)
for organization in "${ORGS[@]}"; do
  for repository in "${REPOS[@]}"; do
    export org=${organization}
    export repo=${repository}
    echo "Release for: [${org}/${repo}] ?"
    read -p "Do you wish to continue?" yn
    case $yn in
      [Yy]* ) true;;
      [Nn]* ) break;;
    esac
    git clone git@github.com:${org}/${repo}.git
    cd ${repo}
    git checkout -b release-1.7
    git push --set-upstream origin release-1.7
    read -p "Do you wish to continue?" yn
    cd ..
    case $yn in
      [Yy]* ) continue;;
      [Nn]* ) break;;
    esac
  done
done

This will go one by one, and let you stop both before and after cloning each so you can validate the branches are being created correctly.

There's an automation process being written for 1.8. It was planned for 1.7 but it didn't make it in time for today.

And as @jwendell noted, any comments about short-comings in the list above would be good (and update the list with comments). We will be looking at the list to do the automation.

Can we close this issue?

@ericvn  We had kept this open because there's one issue that's still pending: https://github.com/istio/api/pull/1551


kast - reads from stdin

Fixes #582

Will this also allow krun -? I'd like that as well.

It doesn't appear so, primarily because stdin from krun isn't piped to stdin from kast. That would probably be difficult to do while maintaining support for the existing behavior of piping stuff to krun. I'm not sure it's a change we can make without breaking the tutorial.
This is ready for review, though.


Show priority for glyphs in report: Above the fold, higher priority glyphs

Related to #36

This repository is now using lodash style issue management for enhancements. This means enhancement issues will now be closed instead of leaving them open.
The enhancement backlog can be found here: https://github.com/filamentgroup/glyphhanger/issues?utf8=✓&q=label%3Aneeds-votes+sort%3Areactions-%2B1-desc+
Don’t forget to upvote the top comment with 👍!


(Angular) A large number of rows are not displayed.

I wanted to show responsive table markup in storybook but I've got a trouble. All lines of code are not displayed.
Simple example is here https://stackblitz.com/edit/ngx-highlight-js-akewwt?file=src/app/app.component.html

Please provide a JSFiddle that reproduces this problem with ONLY Highlight.js and the snippet of code in question to rule out the possibility that it's some bug/problem with your Angular setup.
You can fork my fiddle:
https://jsfiddle.net/ajoshguy/s6xzmLjh/

Closing due to inactivity.   If an isolated reproducible example can be provided then this can always be reopened.


Please publish an artifact to Maven Central

Please publish a Chainsaw artifact to Maven Central.
I want to use a custom plugin to apply Chainsaw (along with other standard plugins & configs) to all my Java builds.
For that, I think I need a dependency in my dependencies block.
If you know some other way to make com.zyxist.chainsaw.ChainsawPlugin available to my source, please let me know.

You might try using jitpack.io:
https://jitpack.io/#zyxist/chainsaw/chainsaw-0.3.1
repositories {
    maven { url 'https://jitpack.io' }
}

dependencies {
    compile 'com.github.zyxist.chainsaw:chainsaw:chainsaw-0.3.1'
}

@mdavis95 Thanks for the suggestion.
I've actually stopped using Chainsaw, and made my own fork.
Look at issues in the original repo to see things I've fixed.
All of my changes are in branches, but I've left off creating most intermediate branches because they get in the way of rebasing, so, to see the current state of the code, either use the branch renamed-plugin if you want to use a different plugin name, or use the commit immediately before the tip of that branch if you want to use the original plugin name.  I haven't published the current version of it to the Gradle Plugin Portal, because I keep updating it, but I can publish it if will help you.  I'm trying to get the Gradle team to incorporate my improvements into their repo…


Link is wrong

Hey,
the link to "this form" does not target to a working form....

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 75dcbc89-3e4e-6ccc-aab0-49debb445e7c
Version Independent ID: afd117d9-e02e-fa13-a858-9f6bafb61d1f
Content: App Certification - Teams
Content Source: msteams-platform/concepts/deploy-and-publish/appsource/post-publish/application-certification.md
Product: msteams
GitHub Login: @laujan
Microsoft Alias: lajanuar

Thank you for bringing this to our attention. The link has been fixed.


[Insights] Support for Eventhub in diagnostic settings

Can one of the admins verify this patch?

@azuresdkci add to whitelist

@vcanaa No tests?

Yeah, I missed the tests. It is good now.


SodaPop | The close animation is a bit too long. Let's tighten it up.

This is fixed in v0.8.0

This is fixed in v0.8.0


Unused function parameters should be removed

Breaking change

Proposed change

Type of change

[ ] Dependency upgrade
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] New integration (thank you!)
[ ] New feature (which adds functionality to an existing integration)
[ ] Deprecation (breaking change to happen in the future)
[ ] Breaking change (fix/feature causing existing functionality to break)
[ ] Code quality improvements to existing code or addition of tests

Additional information

This PR fixes or closes issue: fixes #
This PR is related to issue:
Link to documentation pull request:

Checklist

[ ] The code change is tested and works locally.
[ ] Local tests pass. Your PR cannot be merged unless tests pass
[ ] There is no commented out code in this PR.
[ ] I have followed the development checklist
[ ] I have followed the perfect PR recommendations
[ ] The code has been formatted using Black (black --fast homeassistant tests)
[ ] Tests have been added to verify that the new code works.

If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated for www.home-assistant.io

If the code communicates with devices, web services, or third-party tools:

[ ] The manifest file has all fields filled out correctly.
Updated and included derived files by running: python3 -m script.hassfest.
[ ] New or updated dependencies have been added to requirements_all.txt.
Updated by running python3 -m script.gen_requirements_all.
[ ] For the updated dependencies - a link to the changelog, or at minimum a diff between library versions is added to the PR description.
[ ] Untested files have been added to .coveragerc.

To help with the load of incoming pull requests:

[ ] I have reviewed two other open pull requests in this repository.

Description

Code Smell: Unused function parameters should be removed.

Motivate why the issue/code smell you found is relevant: The code smell "Unused function parameters should be removed" is relevant because it can lead to several issues in code quality, maintainability, and readability. When function parameters are defined but not used within the function, it can mislead readers and maintainers of the code into thinking that the parameter has a purpose. This can lead to confusion and misunderstandings about the function's behavior. Over time, as code evolves, unused parameters can become outdated and irrelevant. If the function signature is not kept in sync with the code's actual requirements, it can lead to maintenance overhead as developers need to decipher which parameters are still relevant and which can be removed.

Explain how you address the identified issue/code smell: Removed unused parameters to provide a clear and accurate representation of the function's purpose and requirements. By eliminating unused parameters, we reduced the risk of overlooking or neglecting outdated parameters during code maintenance. The function signature remains aligned with the actual requirements.

You are changing the signature of functions (async_setup_platform) that home assistant expects NOT to be changed. These are method called by home assistant core to load the integration and changing the signature will lead to a failure. See protocol definition here: helpers/entity_platform.py -> class EntityPlatformModule(Protocol)
See also info about protocols (which are somewhat equivalent to abstract base classes or interfaces in other programming languages): https://godatadriven.com/blog/protocols-in-python-why-you-need-them/


Bluetooth: host: Fix DB hash calculation

When hashing attributes for the UUID cases:
BT_UUID_GATT_PRIMARY_VAL
BT_UUID_GATT_SECONDARY_VAL
BT_UUID_GATT_INCLUDE_VAL
BT_UUID_GATT_CHRC_VAL
BT_UUID_GATT_CEP_VAL
where (handle || UUID || value) is to be hashed, the worst case size of
attribute value is 19:
Characteristic declaration (BT_UUID_GATT_CHRC_VAL)
Attribute Value:

Characteristic Properties: 1 octets
Characteristic Value Handle: 2 octets
Characteristic UUID: 2 or 16 octets

Update the data array to accomodate for the worst case size.
Fixes #39131
Signed-off-by: Thomas Ebert Hansen<EMAIL_ADDRESS>

There's an issue in the EDTT GATT test where the contents of 'GATT Database.xml' no longer matches, as the hash calculation now computes a different number for the 'Database Hash' characteristic.

As mentioned in the issue some of the GATT EDTT tests are failing with the DB hash fix, because there's an generated XML file with expected GATT DB values in it, and it no longer matches.
As the consultant who implemented that system is no longer in the company, I have done some archaeological digging in our version control system, and we found the following:
In a PTS release there is an Excel sheet, with multiple reference GATT databases, that are to be used during PTS testing, and also GATT EDTT testing as they mimic the PTS tests.
This Excel sheet  and been modified and Visual Basic for Application code added for generating a XML file for the GATT EDTT python test code, and .c & .h files for the corresponding GATT DB in the DUT bsim code.
I tried to get the VBA code running and running, but there seems to be some hardcoded paths and from the look of it, it would generate code for older types and apis.
Which PTS release the Excel sheet originally came from i don't know, but i can see that it doesn't match the newest PTS release, where things having added and moved around in reference databases to enforce certain behavior.
The issue is how do we wan't to approach this now, would try to revive the generation of XML file, c and h files or would we just hardcode the failing GATT DB hashes?

As mentioned in the issue some of the GATT EDTT tests are failing with the DB hash fix, because there's an generated XML file with expected GATT DB values in it, and it no longer matches.
As the consultant who implemented that system is no longer in the company, I have done some archaeological digging in our version control system, and we found the following:
In a PTS release there is an Excel sheet, with multiple reference GATT databases, that are to be used during PTS testing, and also GATT EDTT testing as they mimic the PTS tests.
This Excel sheet and been modified and Visual Basic for Application code added for generating a XML file for the GATT EDTT python test code, and .c & .h files for the corresponding GATT DB in the DUT bsim code.
I tried to get the VBA code running and running, but there seems to be some hardcoded paths and from the look of it, it would generate code for older types and apis.
Which PTS release the Excel sheet originally came from i don't know, but i can see that it doesn't match the newest PTS release, where things having added and moved around in reference databases to enforce certain behavior.
The issue is how do we wan't to approach this now, would try to revive the generation of XML file, c and h files or would we just hardcode the failing GATT DB hashes?

I am not sure how this is related to the code in this PR however, and to the discussion we are having regarding the structs and unions?

It's the reason for why the CI is failing, no matter if we use unions, structs or just increase the array length, the CI will never pass.
Fixing the GATT DB hash calculation will render the generated files located in EDTT and tests/bluetooth/bsim_bt/edtt_ble_test_app/gatt_test_app/src/gatt invalid and thus the CI will fail.

It's the reason for why the CI is failing, no matter if we use unions, structs or just increase the array length, the CI will never pass.
Fixing the GATT DB hash calculation will render the generated files located in EDTT and tests/bluetooth/bsim_bt/edtt_ble_test_app/gatt_test_app/src/gatt invalid and thus the CI will fail.

Oh, I see. Thanks for the explanation @thoh-ot

@thoh-ot even without fixing the .xml file and/or regenerating it, couldn't we merge the fix so at least we can test it with PTS and 128-bit UUIDs?

@carlescufi I have "shelfed" the generation tool, and instead updated the "Reference Database Hash" in the EDTT GATT test with the correct value and also added an implementation of the Bluetooth SIG GATT test "GATT/SR/GAS/BV-02-C" however the CI doesn't pull in the Python module update (Pycryptodome) needed for the EDTT GATT test change to fix the failing tests, any idea on how to proceed?

The Python module update requires an update to the CI docker image but to speed this pr along, i have decided to split the task in two and only focus on (1) in this PR.
(1) Fix Host GATT DB hash calculation and Update EDTT with corect DB hash
(2) Introduce new EDTT GATT test (with new Python module)

Waiting for the EDTT PR https://github.com/EDTTool/EDTT/pull/50 to be merged and then mirrored over into https://github.com/zephyrproject-rtos/edtt, so i can update the edtt west sha to point to the correct sha.

@thoh-ot The EDDT PR is merges now. Should we move this out of draft status?

@alwa-nordic have your 'request changes' been addressed?

Changes have been agreed on in conversation.

@alwa-nordic Is everything good now?

@alwa-nordic please take another look here. Your review is blocking merging.

@thoh-ot thanks for following this up, this look good now.


[work in progress] Keymap tests

Needs a rebase, apologies.

@blink1073, cool. Got it, thanks.

LGTM.


Parsing packets in TU/B format

Would be useful, as a lot of packets are written in this format now (esp in high school) of alternating tossups and bonuses

Would require some changes in YAPP. Should be doable, but it's down on the list.


Record the 4 sources

I'm running ODAS on a Raspberry Pi with Respeaker 4-mic array and running ODAS Web on a remote laptop.
We want to do some research work based on the sound directions information captured by 4 microphones.
So is it possible for us to record and save these information?

Yes, you can configure ODAS to save tracked sources to a JSON file.
You'll want to modify the sst section of your ODAS config file.
Under tracked -> format: json.
Under tracked.interface -> type: file, filename: whatever.json.

Thank you so much. I got the tracked sources successfully.
I know x,y,z is the coordinate of the sound source, while what's the meaning of "id" and "activity"?


Core/Builder: Convert OnceBuilder build from FutureBuilder to StatefulWidget (#26)

Closing https://github.com/MostafaSolimanMO/once/issues/26 by converting FutureBuilder to StatefulWidget.
No code changes are required except showOnEveryNewVersion &  showOnEveryNewBuild named parameter key will be unnamed and replaced by a named Key? key to control the stateful widget rebuild.

LGTM


Support varint encoding

We do support varint encoding, specifically gamma. See #[bitcode_hint(gamma)] via #[derive(bitcode::Encode, bitcode::Decode)]. Let us know if you want a different bit-wise varint encoding.

Oh you are right; I didn't notice it because there was no mention of bitcode-varint in this benchmark: https://github.com/SoftbearStudios/bitcode#primitives-size-in-bits


Create YYYY-MM-DD-Call-to-Action-Survey-of-Kubernetes-Tool-Preference…

…s-for-Programming-Tasks.md
Call to action for participation in the developer survey of Kubernetes tools and programming tasks to more deeply understand developer tool preferences that coincide with programming tasks.

/assign @tashimi

/hold
@algebrot, can you make the filename / path match the date?
(we will need to change both the front matter and the path once SIG Docs has assigned an actual publication date)
How about the 18th of November? I'll suggest that now; there might be an earlier date possible but I'm not sure.

Please do not publish this survey on the Kubernetes blog.
No survey should be published in a Kubernetes community property without satisfying GDPR requirements, which this survey does not.  Further, if it's going to be a survey "belonging" to a SIG, the survey document itself should be under SIG ownership.
The ContribEx survey team is available to help with revising the survey to support these requirements.

I agree with @jberkus.
Please see the kubernetes.io Blog Guidelines and Expectations
Closing this PR since it does not meet the blog guidelines and expectations. Please reach out to the ContribEx survey team.
/close


chore: Update golang.org/x/* modules

What this PR does / why we need it:
Updated modules golang.org/x/* to the latest versions.
Special notes for your reviewer:

/cc @AlonaKaplan

/approve
/lgtm


Feature(eos_generate_structured_config): Generate structured_config from eos config

Enhancement summary
Introduce a module or plugin that could generate a structured_config from a given eos_config.
Which component of AVD is impacted
others
Use case example
If one could generate a structured_config from a running device configuration, one would be able to easy diff the two structured_configs in a programmatic way and display config compliance divided in whatever way the user sees fit.
Furthermore, structured_config for a running config could be more easily diffed using jsondiff, yamldiff, or ansible's fact diff.
Describe the solution you would like
Require a new template directory for for whenever anyone submits an update to the eos_cli_config_gen  config templates that would use something like Template Text Parser.
Anything without an equivalent eos_cli_config_gen dictionary would be reported in a key called not_parsable that would list in a dictionary, the line number and the line text.
Describe alternatives you have considered
Use something like

batfish - compare the data models output by batfish to intended_config OR spit out the batfish dictionary use by batfish for both configurations
netutils - Leverage one of the many config compliance functions also leveraged by nautobot
hier_config - Mentioned quite a bit by others since it can understand the hierarchy of configuration

Additional context
No response
Contributing Guide

[X] I agree to follow this project's Code of Conduct

https://github.com/dmulyalin/ttp_templates would likely be a good approach here.


bug with fix

Towards the end of  the definition of long_add(num1; num2) the occurrence of "negate" in the following line is incorrect:
    else minus($a2[1] ;$a1[1]) | negate

After correcting the spacing around the semicolon, the line should read:
minus($a2[1]; $a1[1])

Relevant test case: long_add("-2"; "1")
The bug has been fixed at https://gist.github.com/pkoppstein/d06a123f30c033195841

@pkoppstein: I'm on the road, so gave you collaborator status to implement the patch =)

f0c078be49f8a21fafd697984169e94e8f906789

@pkoppstein: great, thanks! Would you mind adding your test to the other test cases though?

@joelpurra:  The current version of BigInt.jq was used to compute range(0;61) | Bernoulli(.) (see http://rosettacode.org/wiki/Bernoulli_numbers#jq).  It might be worthwhile adding tests for, say, range(0;20), but I'm not sure how to do that.

@pkoppstein: noticed that you added relevant tests too - thanks!
Larger (multiple lines of code, lots of input or output) aren't suitable for the four-line test formar. For larger (and "real world usage") test cases it's actually easier to jqnpm generate a new package like jq-bernoulli, import jq-bigint, write the Bernoulli and enter tests there. This also means reusability for little more than the cost of writing tests =)


fix: json-schema oneof to include templates

fixes validation issues for templates
fixes #222

Thanks for your contribution, but the schema file is auto-generated so we don't accept manual PRs into it.


Any plans to add official libraries for languages other than C++?

Hello.
I wonder if there are any plans to write official client libraries, that, probably, could utilize TCP protocol instead of http?
Because now as far as I can see there are different 3rd party libs that have not very good quality. As a result all performance and speed of clickhouse is wasted inside those libs.
Probably some kind of c++ driver with native bindings to other languages?

@SkeLLLa there are no specific short-term plans, but which exactly libraries have you tried?
P.S. There's also JDBC driver for JVM-based products that is kind of official http://github.com/yandex/clickhouse-jdbc

@blinkov thanks for reply.
I'm talking mostly about libraries that use http interface, and doesn't use odbc/jdbc.
Recently I reviewed couple of nodejs drivers. For example in this case time that lib adds is up to 2x comparing to time that clickhouse uses to perform query. So if clickhouse request takes 1s, then library could add 2s for processing that response.
And all of them have several common problem:

they use HTTP that have obvious overhead comparing to TCP
they utilize streaming interface, but consume responses in JSON which is not quiet good format for streaming
javascript also adds some performance overhead

So I think it would be good if clickhouse will have some binary library written in C++/Go/Rust/Whatever which will be responsible for communication with database preferably via TCP with have parsers built-in. And for other languages it will use binding. For example, couchbase, uses such approach: https://github.com/couchbase/couchnode.

@SkeLLLa, have you looked at https://github.com/artpaul/clickhouse-cpp
Also, there is TCP protocol driver for Go which is used for high performance data ingestion: https://github.com/kshvakov/clickhouse
There is TCP protocol driver for .NET: https://github.com/killwort/ClickHouse-Net
And for Java: https://github.com/housepower/ClickHouse-Native-JDBC
These are all 3rd party projects, so quality may be a concern. Though they are used in production systems. Official JDBC is also very good and production quality.

@alex-zaitsev thanks for suggestions.
My main goal is to have some good official lib aka driver and build libs for other langs around it.
So as for JDBC - the main con is that it requires JVM to run, so it's not good to have such dependency if you're building a library for node.js or php. Dotnet client seems quiet young project and C# now also not very cross-platform.
Clickhouse-cpp looks quiet good for making clients with binding to it, except one thing: https://github.com/artpaul/clickhouse-cpp/issues/21. Unless it doesn't support async interface it will be difficult to create a lib with binding for languages like js (node.js) due to their async nature.
Another option is try to write good TCP based client, but I haven't found any relevant docs about TCP protocol.

Another option is try to write good TCP based client, but I haven't found any relevant docs about TCP protocol.

I like the idea of having such a client. AFAIK it's not a priority, there are a lot of server tasks, and for such a 'nice to have' stuff there are not enough resources.
Binary protocol details were not published by intent, as developers prefer to have an ability to change that protocol with braking compatibility. So the idea was that an external libs should not rely on internal protocol (which can be changed) instead of that use simple HTTP.
For ClickHouse HTTP is not a bottleneck, the bottleneck is usually serializing data to TSV / JSON / other format or API overhead. So if it's not a problem for you to  go on a lower level (like c / asm) most probably you will be able to solve the performance issues just by fixing that common bottleneck (by improving serialization, may changing used libs for sending HTTP requests, to decrease the API overhead, etc).
If you have resources and experience you can create such a good quality driver, probably it can get 'official' or 'recommended' status. Also you can contribute to artpaul/clickhouse-cpp, or to ClickHouse itself to add the some important building blocks to HTTP communication which are still missing (like exchange of some metainformation about query and results).

@filimonov thanks for reply.
As for HTTP it's ok, but I find it not very good, because of it's limitations:

query string length limit (that could actually vary depending on language used).
query string parameters encoding could be potential issue that is hard to predict.
That why I was also looking to TCP protocol or for some library that will provide an abstraction over it with simple async interface in order that will allow to create simple bindings for other languages.

Also if I have time I'll try to make a lib for node, probably, that will use tsv instead of json and will have some kind of transport abstraction in order to easily replace underlying protocol if something better will be available later.

query string length limit (that could actually vary depending on language used).

You can use POST and send the query in POST body instead of querystring (i think most of HTTP based libs do it like that).
For POST body there is no limitation on size, also in POST you can just send unencoded queries as plain text.

@filimonov, thanks. And as far as I can see not all libs use POST :).

@SkeLLLa these properties are kind of independent of each other:

high quality usually means having stable public interface, reasonable test coverage and infrastructure (including integration tests), easy-to-understand and detailed enough documentation, lack of serious issues and so on.
official usually just means that client library is maintained by same company as main product (Yandex in our case).
whether TCP or HTTP protocol is used. For example, official drivers for either ODBC and JDBC are using HTTP and it's rarely a bottleneck.

Yandex internally has a whitelist of allowed programming languages. One of advantages of this is that infrastructure teams like ClickHouse doesn't have to scatter resources to maintain client libraries for all possible languages/frameworks/etc that exist in the world. So this allows us to keep the libraries we have relatively high quality, but it also makes it hard to justify hiring dedicated people to maintain libraries for technologies not on whitelist since nobody inside will be allowed to use them. In long term this situation might change, but at the moment all relevant libraries we have are already public.


Converting the integer array data to openCV Mat

Required Info

Camera Model
D435

Firmware Version
RealSense viewer 2.16.0

Operating System & Version
Linux (Ubuntu 16)

Kernel Version (Linux Only)
4.15.0-33-generic

Platform
PC

SDK Version
2.0

Language
C++

Segment
Build

Issue Description
I am trying to generate cv::Mat using the uint8_t array obtained from get_frame_data() for a frame. I am building a client-server application where I am sending the integer array from server to client. At the client side, I am trying to generate cv::Mat from the integer array received. But, the image displayed is some garbage. I know Mat() also takes the void * array but I can't send this array from server to client, I need to convert it into int array first. So, how do I use the int array to convert it into Mat?
I have written the following code. Please help!
rs2::frame color_frame = frames.get_color_frame();
    int height = 480;
      int width = 640;
      int arr[width*height];
      auto pixels = (uint8_t*)color_frame.get_data();
      for(auto i=0;i<(width*height);i++)
      {
      	arr[i] = pixels[i];
      }

    // Creating OpenCV Matrix from a color image
    Mat color(Size(640, 480), CV_8UC3, arr, Mat::AUTO_STEP);

    // Display in a GUI
    namedWindow("Display Image", WINDOW_AUTOSIZE );
    imshow("Display Image", color);

Hi @RohanKPatil
I don't fully understand why you are trying to convert the data to ints? This way, every pixel will get replaced by 12-bytes instead of 3 for R, G and B. If you must have an array of integers, just using memcpy would probably do the trick.

Sorry for the vague description. What is the other way that you suggest to send the frame data from server to the client? I am currently sending the array obtained by get_frame_data() . As this returns an array with (void *) to it, so I thought of converting it into int array first and then send the array. How can I use memcpy? Can you elaborate a bit?

[Realsense Customer Engineering Team Comment]
From server, you can still send uint8_t array to client.
From client, obtain the uint8_t arrary and convert cv::Mat as below example code for color image.
Mat colorMat(Size(width, height), CV_8UC3, (void*)pixels, cv::Mat::AUTO_STEP);
imshow("color", colorMat);

I have done the same thing. But the issue is that I am getting some garbage image. Probably the pixel values are getting disturbed during this int conversion. What is the alternate way to do this?

[Realsense Customer Engineering Team Comment]
Ticket being closed due to inactivity for 30+ days


Update brew cask executable name

brew-cask.rb was renamed to brew-cask in release 0.51.0 in December 16th 2014 (https://github.com/caskroom/homebrew-cask/pull/8089).
This causes brew cask be installed on every run of osxc playbooks.

Nice catch and thanks for the PR!


Missing steps ESP32 S2 in high dynamic usage

Hello and thank you for this awesome library.
This library is used with an ESP32 S2 Mini in my DIY active pedal (https://github.com/ChrGri/DIY-Sim-Racing-Active-Pedal/blob/main/Arduino/Esp32_S2/Main/Main.ino).
Here, a Loadcell measures force applied to the pedal and uses a closed loop stepper (https://www.omc-stepperonline.com/de/nema-23-integrierter-easy-servo-motor-180w-3000rpm-0-6nm-84-98oz-in-20-50vdc-buerstenloser-dc-servomotor-isv57t-180) to adjust the pedal position. Unfortunately, after some usage, the pedal seems to lose its neutral position, thus the pedal tilts more and more to the ground and I'm trying to understand the root cause of this problem.
The cycle time of the code is approx. 130 us and depending on the loadcells reading, a new non-blocking moveTo(..., False) is executed. The position and direction might significantly differ from the cycle before. Stepper speed and acceleration are configured rather high as required by the application.
Step+ and Dir+ of the motor are wired to 3V3 and Step- and Dir- are wired to the GPIOs. I wonder, if applied in this configuration, some stepper code logic needs to be changed from rising to falling edge?
Other remarks of potential solutions are highly welcome.
BR

If I understand the datasheet correctly, then the DIR- and PUL- should be connected to GND.
In order to support the debugging, I would advise:

which position does FastAccelStepper report ?
if you remove the load, do you still observe the deviation after some time ?

If I understand the datasheet correctly, then the DIR- and PUL- should be connected to GND.
In order to support the debugging, I would advise:

which position does FastAccelStepper report ?
if you remove the load, do you still observe the deviation after some time ?

Thank you @gin66 for the fast reply. I've tried grounding the DIR- and Step- pins first, but then the ESP32 was not starting. Therefore I used the GPIO as ground.
Calling "stepper->getCurrentPosition();" gives the drifted position (e.g. 0 although the pedal clearly is out of the initial position) unfortunately. I will try without load next.
BR

@gin66 I've removed the load from the stepper. When I ask for high velocity & acceleration movements with direction changes in between the cycles, sometimes the stepper moves in the wrong direction.
I've build a new µC where the Dir- and Step- are connected to GND and Dir+ and Step+ connected to the GPIOs as suggested --> no difference.

I've read a article from stepperonline which mentions that they have tested 3V3 for their closed loop system (https://www.omc-stepperonline.com/support/do-your-stepper-drivers-accept-33v-signal-voltage-for-arduino-and-raspberry-pi).
I do have a logic analyzer, which I'm using next.
I don't need acceleration. How do I disable it in the library?

do you have a short working code, which reveals the issue, so I can test it here ? Without all the peripherals in the code, which I do not have. This means, having only the stepper code would be of great help to see, if there is any problem with the lib.
Depending on the logic analyzer, perhaps the load of the driver is just too high and even the logic analyzer detects sometimes low. Anyway, the manufacturer does not recommend 3.3V operation. Already some ground shifts or long wires may impact the outcome.
I have thought for some time to disable acceleration altogether e.g. by setting acceleration to 0, but haven’t implemented it.

I've tested without the stepper driver cables attached and observed similar behaviour.
I will prepare some test code without the other dependencies now.

Thanks for the measurement and code example. This is very helpful
Quite helpful. I have modified the code with some comments: (https://github.com/gin66/FastAccelStepper/blob/20a8301b4b8c4ee2bbb4e657049f4c0df26045b7/examples/Issue174/Issue174.ino)
The issue is, that you run the loop with cycle time of couple of 100 us. The stepper gets every cycle a new position. Most of the positions, the stepper task does not even see. The stepper task looks every 4ms for commands and all former position requests are overwritten. That's why, I have added print out of the stepper->targetPos(). This way you can see, what the stepper is intending to run to.
The max speed in your system is 13333 steps/s. So at full speed at 130us loop cycle time, the stepper can run only 1 or 2 steps. But every loop requests to run 500 steps during that time. This does not work.
Consequently: the stepper needs time to run.

Thanks for the testcase. Hardware wise, the stepper can handle up to 4k RPM and 300kHz step rates.
Given that the steppers trajectory is updated every 4ms and the sawtooth from the test has a period of 2.6ms = 130us/cycle * 10000 steps/tooth /500steps/cycle, I would have expected the stepper to be mostly stationary and move forward and backwards only slightly. But since the stepper kept rotating in one direction, could it be, that the ramp generator planner loses track of its own states somewhere?
Real world usage should not be as demanding as this testcase. However, high frame rates are required, otherwise the pedal will start to oscillate.

There is still the possibility, that on esp32 something goes wrong or something is not ok with the interface to that motor, which causes position divergence. Today I have made the test using simavr, which emulates an AtMega328p, and it has run well. Testing on esp32 takes more time as I need to prepare and attach the esp32 hardware.
On ESP32 the rmt module is used, which I believe to have better performance than mcpwm/pcnt, but rmt is most likely less in use in the field. In regard to steps lost: this should not happen at all, if neither ForceStopAndNewPosition nor setCurrentPosition has been called. But I still have doubts about the motor interface  3,3V/5V, so I would rather start with this.
BTW: cool project of yours and nice video.

Pin losses could be caused by DIR/STEP timing. FastAccelStepper supports to add a delay on direction change:
setDirectionPin(dirPinStepper, false , MIN_DIR_DELAY_US);

Perhaps this helps

Thank you very much. I will try the test on an Arduino Nano later that day.
Do you have an idea which delay value on direction changes I should try with the ESP32?
Thank you for this library and if you need an ESP32 S2 Mini (15€/3 units) for testing, I'd be happy to help e.g. via Amazon wishlist or PayPal.

In your example code, the acceleration is 100. This means direction changes will not happen fast and your assumption "Channel 4 should follow channel 3 somehow" is not valid.
I have updated the example in the Issue174-branch to match it to your code.
I think the scaling in the image is not correct, but at least it is clearly visible, that DIR A is changing:

The code, which I have used is here.
Could you please check and tell me, which values I should change ?

@gin66 I'm so sorry. I've to withdraw my statement, that it's not working on the Atmel as well. Uploaded the same C code to Arduino Nano and ESP32 S2 mini and let them run in parallel. The output of the logic analyzer is different for the Arduino and indeed shows Dir changes. For the ESP32 this is not the case.

See Ch0 vs Ch5.
Arduino Nano:
Ch 0: DIR+
Ch 1: Debug
Ch 2: STEP+
ESP32 S2 mini:
Ch 5: DIR+
Ch 6: Debug
Ch 7: STEP+

OK. So I need to test directly on HW and the atmel simulator is not of help anymore.
Could you please do me a favor and check within the loop for stepper->rampState() ? I like to check, if the issue is related to the ramp generator or the low level driver. That ramp state value may of help.

Sure. I've added the requested command like seen below:

Here are the two log files:
AruinoNano.log
Esp32_S2_mini.log
Not sure whether this is important or not, but the Dir pulses differe in length a lot. Ch 2 is Arduino and Ch 7 is the ESP:

I've setup the cycle time to be 500us for both µC in that example.

And just for completeness, here is the logic analyzer output for cycle time of 500ms and acceleration=1e8 steps/s^2

The direction change can bee seen for ESP (CH 5) and Arduino (CH 0).

Thanks for quick action.
The ramp states are defined like this:
// The defined ramp states are:
#define RAMP_STATE_IDLE 0
#define RAMP_STATE_COAST 1
#define RAMP_STATE_ACCELERATE 2
#define RAMP_STATE_DECELERATE_TO_STOP 4
#define RAMP_STATE_DECELERATE (4 + 8)
#define RAMP_STATE_REVERSE (4 + 16)
#define RAMP_STATE_ACCELERATING_FLAG 2
#define RAMP_STATE_DECELERATING_FLAG 4

// And the two directions of a move
#define RAMP_DIRECTION_COUNT_UP 32
#define RAMP_DIRECTION_COUNT_DOWN 64

So there are the following states in the esp32 log:
34 count down+accelerating
44 count down+decelerating
52 count down+reverse
66 count up+accelerating
76 count up+decelerating
84 count up+reverse

This means:

The stepper should go in both directions
At now point, the stepper reaches max. speed

And from your latest info, I understand, the stepper is changing direction, too.
So I currently cannot find any issue.
Could you please change the code, that the ramp is not executed so superfast, which gives FastAccelStepper a position to follow ?  Please try instead this code, which provides the stepper with the positions to run the ramp 10 times per second:
PositionNext = (currentTime / 10) % 10000;

And from your latest info, I understand, the stepper is changing direction, too.

Only for the example, where the cycle time was increased to 500ms and the acceleration increased to 1e8.
The post before, with the attached log files was created with cycle times of 500us.

OK. Now I understand. Thanks for clarification.
Hope later today I can check on the esp32 (without S2)

Good point, I've run the same test on the esp32 (without S2) and it's running great. Direction changes as expected.

So only the esp32 S2 seems to have the issue currently.

The S2 uses RMT module and the stock esp32 a mcpwm/pcnt combo. But there is a possibility to force the use of the rmt module even for stock:
#define DRIVER_MCPWM_PCNT 0
#define DRIVER_RMT 1
#define DRIVER_DONT_CARE 2
  FastAccelStepper* stepperConnectToPin(uint8_t step_pin, uint8_t driver_type);

Just add the parameter DRIVER_RMT to the stepperConnectToPin(). On the esp32s2 will give a compile error.

Good to know. I've flashed the esp32 (without S2) with either DRIVER_MCPWM_PCNT and DRIVER_RMT. CH 5 is Dir+, CH6 is Step+ and CH 7 is the debug signal.
stepper = engine.stepperConnectToPin(stepPinStepper, DRIVER_MCPWM_PCNT); gives this result:

stepper = engine.stepperConnectToPin(stepPinStepper, DRIVER_RMT);gives this result:

With esp32-hw and your app, I could reproduce the issue with the rmt-module.
Funnily, there was even a comment in the rmt-module about the dir-change and stating an assumption. Apparently that assumption has not been met in your application. I have now applied a quick-fix, which allows the motor to change direction. I am just not sure, if this causes steps lost. That's why I have added pulse counter support for esp32s2, which can support the detection of lost pulses.

the esp32 based hw tests indicate, that steps are lost due to that hotfix.

You are absolutely awesome. I've flashed the update and it's already miles better than before.
When flashing my testscript to my pedal, I indeed can confirm the lost steps. With every sawtooth the steppers 0 position moves constantly further from it's initial position. Wanted to count the forward and backwards steps via logic analyzer next.

Thanks for the detailed investigation. The mcpwm/pcnt combo runs pretty well, while the rmt-version has some issues. In the meantime I have reworked the code and believe, that changes in direction is now better managed and step pauses as in your pictures are avoided.
Most of my hw tests are passing. Just two similar test cases are constantly failing.
So step loss has improved, so I have decided to upload the current code. Hope you can confirm an improvement, too.

Thank you very much. I've flashed with the update library. It's much better, yet not perfect.
RMT with 500ms delay in between the bursts:

Observation: No steps lost
RMT with 50ms delay in between the bursts:

Observation: No steps lost
RMT with 5ms delay in between the bursts:

Observation: Steps are beeing lost, position is drifting.
MCPWM with 5ms delay in between the bursts:

Observation: Steps are beeing lost, position is not drifting.
For the tests, the stepper limits have been parameterized as follows:
stepper->setSpeedInHz(33333)
stepper->setAcceleration(1e8).
The required steprates to follow the burst with the given delay of [500ms, 50ms, 50ms]  has to be [1k, 10k, 100k]steps/s. Ignoring acceleration here.
I feel like, that RMT behaves perfect when the requested step rates are lower than the parameterized limit. But steps are lost when the requested steprate is higher than the parameterized limit. MCPWM, seems not to drift but oscilation around the center.
Does this observation relate to the failed testcases?

Thanks for the measurements and it fits for the rmt. The two failing test cases are faster versions of a test, which is passing. So I need to focus on that.
For mcpwm/pcnt I have not observed step loss for a while and with my test cases. After rmt is ok, I will check that again. The issue with mcpwm/pcnt is, that high speed directly followed by a pause may lead to step loss under higher cpu load, because the interrupt has to stop the pwm right before the next step. At high speed of 100ksteps/s, this is <<10us. Using deceleration with not so high values, any possible overruns due to delayed interrupt service at high speed can be recovered, because the pulse counter detects this.

@gin66 I'm using the ADC lib to gather ADS1256 readings via SPI. Calling stepper = engine.stepperConnectToPin(stepPinStepper); corrupts the data reading or breaks the SPI communication to the ADC. Don't know exactly. The old implementation did not have that problem.
Apparently the call order has an influence.
It does not work, when I initialize the ADC first and the stepper afterwards.
It works, when I initialize the stepper first and the ADC afterwards.
It's not a blocking point for my project, since I only need to change the call order to make things work. But, perhaps, something you may want to keep an eye on.

is it using Pin 18 ? I have forgotten to disable the probe for toggling this port pin in the rmt driver:
ˋˋˋ
#define TEST_PROBE_1 18
ˋˋˋ

I've flashed the testcode to an esp32 & esp32 S2 for comparison. The results look different
ESP32 with engine.stepperConnectToPin(stepPinStepper, DRIVER_RMT)

Observation: No steps lost
ESP32 S2 mini:

Observation: Position is drifting.

The new version passes all tests.
As I had once a test failure, perhaps there is still a sporadic issue, which needs to be monitored further. Please try the latest version

Thank you. Flashed the the code to the pedal. Unfortunately, it seems to perform a lot worse than it did before. From observation I would say, that the direction signal isn't following the requested direction.
I'm gonna try to write a testcase which is as close as possible to the application.

Do you observe any step loss aka position drifting ?

I think that it's fine if the requested step rate is lower than the parameterized maximum steprate. Once the requested steprate gets to large, it's much more drifting than before. I reperformed the sawtooth testpattern with [300, 5]ms delay per cycle.
Esp32 S2 Delay 300ms

Observation: Position follows the sawtooth pattern
Esp32 S2 Delay 5ms

Observation: Position drift away, significantly worse than before

I have added your example with modification as Issue174.ino under examples. Here you can see, how to attach a pulse counter to check, if steps are lost.
The pulse generation runs flawless with acceleration 1e6.
With 1e9 there are immediately deviations and the esp32 stalls even after a short while, which is even more weird.
The log out of reset is:
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:184
load:0x40078000,len:12680
load:0x40080400,len:2908
entry 0x400805c4
Setup stepper!
Return to 0 from 491
=> FAIL with pcnt=
2
Return to 0 from 439
=> FAIL with pcnt=
4
Return to 0 from 359
=> OK
Return to 0 from 243
=> FAIL with pcnt=
20
Return to 0 from 109
=> OK
Return to 0 from -37
=> FAIL with pcnt=
-5
Return to 0 from -170
=> FAIL with pcnt=
-1
Return to 0 from -305
=> OK
Return to 0 from -423
=> OK
Return to 0 from -486
=> OK

That's weird indeed. Perhaps a numerical issue?
Are the failed testcases RMT exclusive?

still have an issue in the rmt-driver. This will take some more time to fix

still have an issue in the rmt-driver. This will take some more time to fix

You already did an awesome job. Let me know, if you need any help.

FYI: I've had significant amount of step loses on the pedal, when calling (a) for a move to the stepper->getCurrentPosition() or (b) same target position over and over again (150us cycle time). Don't know yet if (a) or (b) created that problem. Problems are gone with this command:
https://github.com/ChrGri/DIY-Sim-Racing-Active-Pedal/blob/33c2687d5ded583c01289e7f45100538fee369e3/Arduino/Esp32_S2/Main/Main.ino#L544
Haven't tried the command on the testcase yet.

Good that you have found a solution.
Anyway, I have set up my esp32 with logic analyzer and modified your test case. Several bugs identified and fixed. Hope it applies to esp32s2, too.
So I have released 0.30.1 as I believe it to be much better. All esp32 hw based tests are passed and your test case (modified and stored as examples/Issue174/Issue174.ino) do not show any pulse loss anymore.

Thanks a lot. I've tried back and forth, with the current mainline head, the stepper isn't moving anymore.

I've only tried on my esp32 s2 today. I will try on a regular esp32 tomorrow.

Please try to  apply this patch:
diff --git a/src/StepperISR_esp32_rmt.cpp b/src/StepperISR_esp32_rmt.cpp
index d459069..60899ba 100644
--- a/src/StepperISR_esp32_rmt.cpp
+++ b/src/StepperISR_esp32_rmt.cpp
@@ -492,6 +492,8 @@ void StepperQueue::startQueue_rmt() {

   // This starts the rmt module
   RMT.conf_ch[channel].conf1.tx_conti_mode = 1;
+
+  RMT.conf_ch[channel].conf1.tx_start = 1;
 }
 void StepperQueue::forceStop_rmt() {
   stop_rmt(true);

Perhaps the ESP32S2 needs the tx_start, which the esp32 does not need.

Happy to confirm that patch is working :)
In a short test, the pedal felt great. I will spend more time this week trying to provoke step losses.

@gin66 Thx you for fixing the lost steps. Meanwhile, I've mounted a regular ESP32 on my pedal to be able to switch between RMT and MCPWM. The good news is, that none of them seem to have issues with step loss. However, the response of the stepper to dyanmic input seems to be quite different for RMT and MCPWM. In MCPWM the pedal response is perfect. No delay or latency whatsoever. In RMT, the response sometimes seems to be delayed and not smooth. Without knowing the root cause of the difference, I would describe the behaviour as, once the input queue is full, the target position is not updated by new commands until the queue is completed entirely.

There is a difference in regard to direction changes. The RMT will do DIR change only, if the current command in the queue does not generate steps. If this is not the case, then the driver will add a pause, which may slow down in a highly dynamic use case.
Does this match your experience ?

That's possible. Is there a technical reason for that functional difference?

Yes, this arises from the current implementation. The RMT buffer is split into two parts and usually one half executes one command from the step queue. This means, while one half is being processed by the RMT HW, then the other buffer can be prepared with the next command. If now a command with direction change needs to be processed, the dir output needs to update. If the currently executing command is performing steps, it is not possible to safely change the dir output without risking one step in the wrong direction. So the driver requires the current running command to have no steps in order to change the direction pin. If this is not the case, then the driver inserts a pause.
Perhaps there are alternative ways to avoid this, just I have currently no good idea, how this can be done. Normally direction change appear at stopped motor, so I would expect most application to have no issue with this pause.
This raises the question, if this technical implementation causes the observed behavior or not.

Thank you for the detailed explanation. Since I'm currently using the regular esp, this does not need prioritization tbh.
If you want to verify your assumption, I could trigger a serial print for specific conditions/state and try to correlate that with the pedal response. Do you have an idea which state to check (internal variable or function argument of the API)?

direction changes could be a trigger. this you can get directly from the port pin


is there an android recorder present in this module ?

I want to be able to record audio via my kivy app and i have searched many sources . Does this module support audio recording ?

No, it doesn't at the moment. You can checkout https://github.com/kivy/audiostream it works on android


Propose updating to Mattermost 3.5

Hey @drnic and others,
Just wanted to inform you that Mattermost 3.5 release has been cut.
The new release contains security updates and several API changes - you can view the full changelog for Mattermost 3.5 here and find download links with hash numbers here
Wondering if you'd like to help update the Cloud Foundry BOSH to be compatible with Mattermost 3.5?
If you do update, please consider tweeting about it, which we can then retweet for greater reach.
Also, feel free to join the Mattermost Installers community channel for latest news relevant for installer owners.

Hey @drnic,
wanted to let you know that Mattermost 3.5.1 with bug fixes and security updates is available now: https://docs.mattermost.com/administration/changelog.html#release-v3-5-1

Thanks. Sorry our CI had a clean out (thx @lnguyen) and the mattermost pipeline got dropped.

I will get the pipelines back up tomorrow.

Thanks @drnic and @jhunt
Mattermost 3.7.3 has been released which contains a security update.  You can view the full changelog for v3.7 here and find download links with hash numbers here
Wondering if you'd like to help update the Cloud Foundry BOSH to be compatible with Mattermost 3.7?
If you do update, please consider tweeting about it, which we can then retweet for greater reach.
Also, feel free to join the Mattermost Installers community channel for latest news relevant to installer owners.

Closing issue since working on the Mattermost 3.9 release


Server crashes with broken pipe if client disconnects ungracefully?

Hey, Love your library but having a little issue with cherrypy 3.3.0 on python 3.3.3 using chromium Version 31.0.1650.63 Debian jessie/sid (238485) on linux mint.
Basically, i can connect to the websocket, but if i close that tab and reopen it, it does not work. If I call socket.close in the client first, the problem dissapears. the server log shows a broken pipe error here in websocket.py around line 232:
def _write(self, b):
    """
    Trying to prevent a write operation
    on an already closed websocket stream.

    This cannot be bullet proof but hopefully
    will catch almost all use cases.
    """
    if self.terminated or self.sock is None:
        raise RuntimeError("Cannot send on a terminated websocket")
        self.sock.sendall(b)

I found a possible fix, I changed the function to:
def _write(self, b):
"""
Trying to prevent a write operation
on an already closed websocket stream.
    This cannot be bullet proof but hopefully
    will catch almost all use cases.
    """
    if self.terminated or self.sock is None:
        raise RuntimeError("Cannot send on a terminated websocket")
    try:
        self.sock.sendall(b)
    except BrokenPipeError:
        pass

And the error dissapears. I assume that ignoring the error is fine because we are closing the whole socket anyway, however I don't know much about the inner workings of ws4py.

Not sure if that was what you meant, but my work around is to simply override the once() function and close the connection if any error occurs running once(). TestWebSocket is my class that inherits from WebSocket:
def once(self):
    try:
        return super(TestWebSocket, self).once()
    except Exception as e:
        print("Closing socket because of error:" + str(e))
        self.close()

Wouldn't a nicer solution to have an "handle_error" function on WebSocket that the user can override if  there are any problems? And a try over the once()-call in run()?
Its behavior could be to write any unhandled errors to the log and close the connection.
Having crashing the entire server as expected behavior if unhandled errors occurs  seems like a quite controversial solution. :-)

I can write a pull request if you think something like this is a usable solution.

I do like the handle_error callback handler, specially since it has been often requested.

Ok, I'll make something.

Hm. I was going to make this thing now, and when I tried to recreate the issue (with the master bransch) i couldn't.
It seems that it had been fixed in some later commit.
@EternityForest, can you recreate the problem with the current master?
Also, I am not sure if an error handler is needed now or how it is to be invoked, as there seem to be some other handling somewhere.

It would appear that a new release would be a  good thing. :-)

Ok, now I managed to recreated it.
It was only the client that had started to disconnect more gracefully.
I'll be back.

I got the same issue with a timeout. After that, the server just open/close websocket.
Exception in thread Thread-2:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/local/lib/python2.7/dist-packages/ws4py/manager.py", line 310, in run
    if not ws.once():
  File "/usr/local/lib/python2.7/dist-packages/ws4py/websocket.py", line 388, in once
    if not self.process(b):
  File "/usr/local/lib/python2.7/dist-packages/ws4py/websocket.py", line 466, in process
    self._write(s.pong(ping.data))
  File "/usr/local/lib/python2.7/dist-packages/ws4py/websocket.py", line 279, in _write
    self.sock.sendall(b)
  File "/usr/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
timeout: timed out

IMO, without even trying to reproduce, manager should never stop running due to something bad in a websocket. So catching any exception and force-close the websocket that have an issue should be done in the code to prevent the manager and others websocket to be impacted :)

I have a modified version of the library in use that seems to handle ungraceful disconnect and suspend/wake just fine. I should probably do some more testing with different browsers.
I think there might be a development branch of this repo, or else some pull requests that fix it. I think I might even have submitted some but I'm on mobile and it was a while back.
The code I've been using is here though, and it seems to work fine running 24/7 at a commercial installation albeit without a lot of ungraceful disconnects or anything like that.
https://github.com/EternityForest/KaithemAutomation/tree/master/kaithem/src/thirdparty/ws4py

Thanks for the feedback @EternityForest . I'm currently testing the try/catch in once() in production. I'm not using webbrowser, but ws4py client to ws4py server, using python on android, under very bad network condition. And the server hangs too easily.
I'll check your code, thanks a lot!

I wonder if it wouldn't be helpful to add some of this to the unit tests? Could we create a loopback client that was modular and could be plugged into the different servers, that tested things like disconnection, bad data, regression testing that SSL one message long delay queue bug, etc?

Yes, i guess. But some are so network stack related it's hard to get them.
After implementing the try catch in once, it got further to another exception:
Exception in thread Thread-2:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/local/lib/python2.7/dist-packages/ws4py/manager.py", line 312, in run
    fd = ws.sock.fileno()
AttributeError: 'NoneType' object has no attribute 'fileno'

And i see you did a fix on your side in ws4py directely:
Exception in thread Thread-2:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/local/lib/python2.7/dist-packages/ws4py/manager.py", line 312, in run
    fd = ws.sock.fileno()
AttributeError: 'NoneType' object has no attribute 'fileno'

I really wish to have commit access at least to solve thoses issues that can be so easy to get with bad network :(

I could add collaborators to this project I guess.

@Lawouach i just wrote you an email as an introduction to a possible collaboration :)

Line 312 in my version doesn't check fileno, and my version has the server thread named "WebsocketManager", so I'm guessing you're using a patched version?
I think my version and the official one have diverged to the point where patches aren't compatible?
Although I'm not seeing what could possibly be setting the sock property to None, unless it has something to do with the Heartbeat thread, but that's only for the client right?
It seems like somehow the once() gets called on an already terminated WebSocket that has no sock() property, and somehow makes it through the polling, or else somehow gets terminated between the poll and the check?
But in my version so far as I know termination can only happen from the manager thread, at least on cherrypy. Is it different in the official version or on other servers?
This is an odd bug.

Here's a proper fork that might be easier to test, that should be an exact copy and paste of what I've been using in production:
https://github.com/EternityForest/WebSocket-for-Python

I believe this is finally fixed. Please open a new issue if you have any thing going on with latest version (> 0.3.5, use master for now until next version is released.)

Still experiencing the same issue on 0.4.2. My solution is incredibly hacky but connection cleanup works fine. (It's a monkey-patch)
from ws4py.websocket import WebSocket as WebSocket_

class WebSocket(WebSocket_):
        def _write(self, b):
		"""
		Trying to prevent a write operation
		on an already closed websocket stream.
		This cannot be bullet proof but hopefully
		will catch almost all use cases.
		"""
		if self.terminated or self.sock is None:
			raise RuntimeError("Cannot send on a terminated websocket")

		"""
		If the client disconnects in an unexpected way.
		"""
		try:
			self.sock.sendall(b)
		except BrokenPipeError:
			pass

Is this error still shutting down the entire server thread? Can we get a full traceback?

Sometimes a print statement is executed that does not kill the server thread.
Error when terminating the connection: [Errno 32] Broken pipe

Sometimes an exception is raised that does kill the server thread. I'm not able to reproduce it at the moment, will get try to do so as soon as possible.


Move 2020 ballots to another route

Instead of doing this, we'll put the 2020 site in a subdomain.

Done. Its accessible under 2020.paravotar.org


NullReferenceException  at (wrapper managed-to-native) UnityEngine.GameObject:GetComponentFastPath (System.Type,intptr)

NullReferenceException
  at (wrapper managed-to-native) UnityEngine.GameObject:GetComponentFastPath (System.Type,intptr)
  at UnityEngine.GameObject.GetComponent[CharacterClassManager] () [0x00000] in <filename unknown>:0
  at Spectator.WaitForInput () [0x00000] in <filename unknown>:0
  at Spectator.Update () [0x00000] in <filename unknown>:0

== STACKTRACK STATS ==
Times seen: 1
Last reported: 2018-02-16 20:22:06.972836


crash with move item from section1 to section2,

can you show demo with move item from setion1 to section2 ,and when didselected in section1 cell move  cell to section2,or dissected section2 cell move item from section2 to section1;THX

If you don't need to move cell between sections, you can just add
if (newIndexPath.section != previousIndexPath.section) { return; }
in - (void)invalidateLayoutIfNecessary


requirements.txt

Nice work. Can you post which packages you are using and what versions? Especially TensorFlow.
Thanks,
Jay

Thanks Jay
I just added a requirements.txt file.
Tensorflow versions above 1.0 should work.


Rethink Sidebar in terms of plain english

Thinking from the perspective of a developer who knows nothing about web5 SSI DIDs etc.....
I'm seeing terms off the bat (within Learn and Build) that are foreign to me (DWN and DIDs), so now I'm just clicking around into pages trying to figure out the what, why, and ultimately how.
I'm proposing we use plane english like "Identity" for DIDs & "Storage" for DWN...or any other words someone else can think of that are simple and clear.
Would love collab on this and a brainstorm session or comments from others on this issue.

@ALRubinger I don't recognize that project, has the project named changed?

torn here because they do need to become familiar with the terms so are we doing them any favors by not calling the thing the thing?
perhaps use icons in front of the sidebar titles to give indication of what it's related to. Like an server icon to represent DWNs

Ah that's a good idea angie! Thoughts on this @dayhaysoos @kirahsapong ?

yes, that goes to some of the feedback we got yesterday. We want them to know the terms but we want it to resonate with something they already know as well. So I like your idea Nick of having both, instead of just an icon.

i like that idea Nick

@angiejones Is this issue open to work on?


Update postgresql to 42.5.2

Updates org.postgresql:postgresql from 42.5.0 to 42.5.2.
Changelog
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.postgresql", artifactId = "postgresql" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.postgresql", artifactId = "postgresql" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, commit-count:1

Superseded by #500.


[SPARK-27555][SQL]HiveSerDe should fall back to hadoopconf if  hive.default.fileformat is not found in SQLConf

What changes were proposed in this pull request?
SQLConf does not load hive-site.xml.So HiveSerDe should fall back to hadoopconf if  hive.default.fileformat is not found in SQLConf
How was this patch tested?
Tested manually.
Added UT

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Can one of the admins verify this patch?

cc @srowen  @HyukjinKwon @cloud-fan

I really don't know this part well. Should Spark really need Hive's config directly? this seems a bit specific to certain types of deployment contexts.

may be, but current issue is session state conf(sqlConf) does not load hadoop and hive configurations, so this PR will fix this issue, I see no impact if sqlConf reads all these configurations.

I think it's done in SharedState?

I think  sqlConf should load at least hive-site.xml since spark  need 'hive.default.fileformat' which comes from hive-site.xml.

I think it's done in SharedState?

The configuration parameters in hive-site.xml are loaded into session.sparkContext.hadoopConfiguration parameters by SharedState, not copy to session.sparkContext.conf. And sqlConf just copy session.sparkContext.conf.

shall we just make HiveSerDe.getDefaultStorage accept hadoop conf?

no we can't, reason is any runtime conf set using set command will not be available in hadoopconf, it is only present in sqlConf

shall we just make HiveSerDe.getDefaultStorage accept hadoop conf?

Yea, I was about to say that. Why don't we use fall back to Hadoop conf if that's not set in SQLConf?

but SparkSqlParser does not have hadoopConf, it only has sqlConf, so is there any way to get hadoopConf rather than adding new constructor ?

@sandeep-katta, how about https://github.com/sandeep-katta/spark/pull/1 way? You can merge that PR to your branch so that the commit is added into your PR here.

ok to test

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/10370/
Test PASSed.

Test build #105079 has started for PR 24489 at commit d03d0fa.

Test build #105079 has finished for PR 24489 at commit d03d0fa.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/105079/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/10371/
Test PASSed.

Test build #105080 has started for PR 24489 at commit 8a4c685.

Test build #105080 has finished for PR 24489 at commit 8a4c685.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/105080/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/10372/
Test PASSed.

Test build #105081 has started for PR 24489 at commit e058628.

Test build #105081 has finished for PR 24489 at commit e058628.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/105081/
Test FAILed.

Test build #105085 has started for PR 24489 at commit 726a9a7.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/10377/
Test PASSed.

Test build #105085 has finished for PR 24489 at commit 726a9a7.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/105085/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/10390/
Test PASSed.

Test build #105100 has started for PR 24489 at commit 78bbc2d.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/10391/
Test PASSed.

Test build #105101 has started for PR 24489 at commit 47e0c37.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/10392/
Test PASSed.

Test build #105102 has started for PR 24489 at commit 21a750c.

Test build #105100 has finished for PR 24489 at commit 78bbc2d.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/105100/
Test PASSed.

Test build #105101 has finished for PR 24489 at commit 47e0c37.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/105101/
Test PASSed.

Test build #105102 has finished for PR 24489 at commit 21a750c.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/105102/
Test PASSed.

Merged to master.


Is this a private method? Will Apple reject this in a submitted app?

Is this a private method? Will Apple reject this in a submitted app?

No private methods are used. It is just extending UIAlertController using a category.


Doc for customized objective/metric.

Depends on #4596.

@thvasilo Thanks!  This proves a point, watching television doesn't improve English.
Actually I was hesitating about this PR, I think there are rooms for us to improve multi-classes and distributed objectives/metrics.  But if this PR goes into official document, it would be very difficult for us to change anything.

@thvasilo Thanks for the review.


fix: Support new Reanimated Headers directory (2.11.10+)

What

Changes

Tested on

Related issues

As per https://github.com/software-mansion/react-native-reanimated/issues/3708


swagger generation

https://github.com/EscolaLMS/Files/runs/2449490388?check_suite_focus=true

Should be fixed by now.


Failed to upgrade chaincode on Fabric 1.4 peer

This issue was found while upgrading chaincode on a 1.4 peer.
The issue is in plugins/module_utils/peers.py
Line 233:
                    p = re.compile('^Name: (.+), Version: (.+), Path: (.+),(?: Input: (.+),)? Escc: (.+), Vscc: (.+)$')

Should be:
                    p = re.compile('^Name: (.+), Version: (.+),(?: Path: (.+),)?(?: Input: (.+),)? Escc: (.+), Vscc: (.+)$')

Path may not necessarily be set.  This causes any chaincode that does not return a path to be excluded from the list of instantiated chaincodes and the chaincode upgrade subsequently fails.
The following is the peer command listing installed and instantiated chaincodes.
marbles2 is node chaincode
marbles3 is golang chaincode
peer chaincode list -o n60cd63-orderer21.celder3-b3c-4x16-334e19b56347d9ce32b6d6a870d14f37-0000.us-south.containers.appdomain.cloud:7050 -C channel1 --tls --cafile /Users/celder/fabric/dev/ansible_dest/debug/orderercert.pem --installed
Get installed chaincodes on peer:
Name: marbles2, Version: 1.0.7, Path: /Users/celder/Developer/go/src/github.com/hyperledger/fabric-samples/chaincode/marbles04/node, Id: cbffee7ec43c91caa5adc6ccfaa6e7cebb3179e09f1c56284a5782e388d52fd3
Name: marbles3, Version: 5.0.0, Path: marbles3, Id: 5d25430e24c256d36f789192bb2570e69fff7533c73d061e332c0d82718842e1

peer chaincode list -o n60cd63-orderer21.celder3-b3c-4x16-334e19b56347d9ce32b6d6a870d14f37-0000.us-south.containers.appdomain.cloud:7050 -C channel1 --tls --cafile /Users/celder/fabric/dev/ansible_dest/debug/orderercert.pem --instantiated
Get instantiated chaincodes on channel channel1:
Name: marbles2, Version: 1.0.6, Escc: escc, Vscc: vscc
Name: marbles3, Version: 5.0.0, Path: marbles3, Input: <nil>, Escc: escc, Vscc: vscc

$ peer version
peer:
 Version: 2.2.0
 Commit SHA: 5ea85bc54
 Go version: go1.14.4
 OS/Arch: darwin/amd64
 Chaincode:
  Base Docker Label: org.hyperledger.fabric
  Docker Namespace: hyperledger

I applied this locally and the upgrade succeeded.   I need to run another test to followup.

Tried again.
This line works better:
    p = re.compile('^Name: (.+), Version: (.+),(?: Path: (.+),)?(?: Input: (.+),)? Escc: (.+), Vscc: (.+)$')

After a few trials, I came up with a match that handles the missing parameter cases:
                p = re.compile('^Name: (.+), Version: ([^\s]*),(?: Path: ([^\s]*),)?(?: Input: ([^\s]*),)? Escc: (.+), Vscc: (.+)$')