iconv(): Wrong charset, conversion from UTF-8' to ASCII//TRANSLIT//IGNORE' is not allowed

How to reproduce?
iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', 'šěýčíéáýřčíšýíščř');
How to fix?
RUN apk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php

refs

https://gist.github.com/guillemcanal/be3db96d3caa315b4e2b8259cab7d07e
https://github.com/docker-library/php/issues/240

Fixing a thing by adding a testing channel to the repositories may lead into security issues. Not recommended.

I've checked this issue and the fastest and most solid current solution is indeed the one mentioned above. Since the gnu-libiconv package doesn't depend on too many other packages that might break things or present security issues, it's coming to these Dockerfiles in the following commits... So thanks for reporting these issues.
Even better would be to fix PHP core on its way as well. From my tests, currently it is not possible to properly and conveniently build PHP on Alpine with iconv extension using anything other than musl's iconv implementation (which has very strict view on POSIX standards and lacks the iconv's translit).

http://wiki.musl-libc.org/wiki/Functional_differences_from_glibc#iconv
http://www.etalabs.net/compare_libcs.html

In such cases another possible solution is to simply use Linux distribution with glibc such as Debian for core Docker image.

This has now been fixed via a new gnu-libiconv package in the PHP.earth Alpine repository and patched PHP source code. I'll also send a PR to PHP source code, since the PHP iconv extension is not working as it should and doesn't get built when passing libiconv.

tested and it works well
did you sent PR to PHP source code?

I'm still preparing the PR for the php-src. For now, there is only a customized patch added to these builds.

It looks like this issue has been resolved since php-7.x version.
This issue I think should be closed.

Hello, I'm not sure if this has been directly fixed but I suggest moving this to PHP's side altogether - with the iconv different functionality when using the GNU's libiconv and maybe suggesting some sort of warning in the docs or something else that different iconv libraries or implementations mean also different functionalities... I'm not sure. But in any case closing this one as won't fix or at least a partial fix using custom build of GNU libiconv... Thanks.

I've added this code into one of my custom php:7.3.24-fpm-alpine3.12 docker images and that also did work great.

How to reproduce?
iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', 'šěýčíéáýřčíšýíščř');
How to fix?
RUN apk add --no-cache --repository http://dl-3.alpinelinux.org/alpine/edge/testing gnu-libiconv
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php

Thanks

Fixed by installing php7-mbstring php7-iconv in that order
RUN apk --no-cache add php7-mbstring php7-iconv

Original solution here: https://github.com/docker-library/php/issues/240#issuecomment-355489551


Name In C

What the program do ?

In what programming language it is written?

This pull request exeeds the max additions limit. Please fix it and reopen


Add SIL Abyssinica font

Description of changes
Add SIL Abyssinica, a font for Ethiopian and Erythrean scripts. It closes #170353
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[x] x86_64-darwin
[ ] aarch64-darwin

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Waiting for https://github.com/NixOS/nixpkgs/pull/166166 to be added to the maintainers list.

@serge-belov can you please rebase to resolve the merge conflict?

@SuperSandro2000 thanks, my bad, it should be good now.


PupilCapture

Interface for capture of Pupil labs cameras with C++, primarily for windows

@mattem86 I would be happy to merge this. However the name Pupil Capture is the name of one of our software applications. As @papr notes in his issue, if you are willing to consider re-naming so that others will clearly understand the differences between Pupil Capture and your C++ interface, that would be greatly appreciated :smile:

@papr I would suggest a name like "PupilCamC++" or something like that for the entry – maybe just add a comment, that this is not affiliated with Pupil labs.

@mattem86 thanks for the response. Could you change your repo name to PupilCamC++ or something similar to avoid confusion within the community?

@willpatera I know, this is not my repo, so I can't change it.

noted, thanks @mattem86


Exception error when log undefined value

An Exception make node crash when I try to log undefined variable
winston "version": "2.0.0"
[TypeError: Cannot read property 'match' of undefined]
warn: QUEUE error TypeError: Cannot read property 'match' of undefined
at Logger.log (/Volumes/working/ibooknail/api/node_modules/winston/lib/winston/logger.js:169:26)

Can you please provide what version of winston you are running?

Thanks for the bug report. Fixed in 2.0.1


Allow creation of notifications using account access token

As pointed out by @jtsaito in #31, creating a notification currently requires a project access token, not an account access token.
This makes it difficult for Terraform to control notifications.  The ROLLBAR_API_KEY used for API authentication is a local secret, not something that should for every different API call.  It's not impossible, but it would be pretty weird & non-standard.
It seems better for this action to require a project access token with write scope or an account access token with write scope.
@mrunalk @coryvirok your thoughts?

@jmcvetta I think what you're proposing is for Account access token write scope to provide write operations for all projects on that account. That way, Account access tokens provide a super-set of Project access tokens and any operation you would do that requires a Project access token with write scope can be performed with the Account access token with write scope. Is that correct?

@coryvirok Yes, that's exactly right.

@rollbar-bborsits @coryvirok why was this closed? Is there a fix available?


Update dashboard.json to use increase_proetheus

Description
Changes proposed in this pull request:

update grafana dashboard to use increase_proetheus instead of increase

Related issue(s)
Though increase from VictoriaMetrics tried to overcome limitationsfrom Prometheus increase, we are having issue getting correct output in KEB dashbord when using VictoriaMetrics increase, tested increase_prometheus works.

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

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


Session Feedback

Thanks for taking a couple of minutes to give feedback, which will help me improve for next time. Before doing anything else, hit the green button "Submit new issue" right now to save this issue content, rather than try to complete the feedback in this raw form. Then go through the questions and mark a single checkbox for each, to represent your answer. Finally, in the empty comment box below this one, please describe what you liked and what you didn't like.
What was your experience of CAP before this session?

[ ] None
[ ] Basic
[ ] Intermediate
[x] Advanced

Did this session meet your expectations?

[ ] Not really
[ ] Somewhat
[ ] Mostly
[x] Fully

Was the time allotted to each exercise enough for you to work through them?

[ ] Not really
[x] On the whole, yes

What did you think of the extra information, explanations and narratives in the exercises?

[ ] Too much information
[ ] Didn't really read it, didn't really bother me though
[x] Found it helpful as context and background

How did you find the way we all moved at the same pace through the exercises?

[ ] Would have preferred to go through them on my own at my own speed
[ ] Didn't mind, no strong feelings either way
[x] Found it useful to keep pace and discuss the exercise questions, and reflect

How did you find the actual individual (👉) tasks in the exercises?

[ ] Not relevant enough
[ ] Hard to do
[x] About right
[ ] Helpful and useful

How confident are you in being able to start mashing up services in CAP?

[ ] Still don't understand how things fit together
[ ] I get it now in theory, just need a bit more time
[x] Confident enough to start integrating services

Which environment(s) did you use?

[ ] A Dev Space in SAP Business Application Studio
[x] VS Code + dev container

If you have time, please add a comment below to write free-form what you liked and what you disliked about the session. Thanks!

great codejam concept interisting for different experience levels


update Julia versions

https://github.com/JuliaRegistries/General/blob/master/J/julia/Versions.toml

https://github.com/JuliaRegistries/General/pull/13569

Looks like this is fixed now.
If I am mistaken, please reopen @StefanKarpinski


Updated changelog for release

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 84.49%. Comparing base (7147a64) to head (6f9db15).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #338   +/-   ##
=======================================
  Coverage   84.49%   84.49%
=======================================
  Files           8        8
  Lines        1554     1554
=======================================
  Hits         1313     1313
  Misses        241      241


Throttle Parameters

Regarding the InputOutputThrottle parameter, is it possible to include some indication if lower values allow for more or less throttling to the deduplication task?  In the InputOutputThrottleLevel parameter it makes a bit more sense to me where Low means little to no throttling.  There isn't a lot of detail out on the Internet for this other than essentially copying the description from this page.

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

ID: d3f6e74c-4b27-e045-d262-8cac31d2f9a3
Version Independent ID: e6eb6dde-2f79-14ff-ad20-067c256ee50e
Content: Start-DedupJob (deduplication)
Content Source: docset/windows/deduplication/start-dedupjob.md
Product: w10
GitHub Login: @coreyp-at-msft
Microsoft Alias: coreyp

@officedocsbot assign @yogkumgit

@officedocsbot unassign @e0i

Hello @AndreaBarr  any updates on this? Thanks

@get-itips  I'm still working on figuring out who can help us on this.

Thank you @AndreaBarr

I agree that this needs to be clearer in terms of Low meaning little throttling and high means it is throttled more but the documentation doesn't explicitly state this and not sure of the actual behavior here.

Yes, please clarify this the documentation everywhere these parameters are specified including Set-DedupSchedule. Dedup Optimisation has a huge impact on IO performance and these parameters are the only way of controlling that impact. The documentation needs to be clearer. It would be helpful to also clarify ThrottleLimit since it uses the same term but I believe is unrelated to IO.

Hi e0i, what changes have been made? It appears the documentation has not yet been updated for this issue. Cheers.


House of spirit

house_of_spirit.c in the README section links to https://github.com/shellphish/how2heap/blob/master/glibc_2.23/house_of_spirit.c
which still uses the fastbin list. Since it Glibc-Version refers to the "latest" better link the one that points to the tcache versions.

Does GLIBC-2.23 have tcache?
I read tcache was introduced after 2.26 version.

This is why I am suggesting to point the link to the latest glibc version poc. The current one is misleading, since after the tcache introduction, there is no need for a second chunk.

I think link leads to the oldest glibc version which has this vulnerabilities.
Version of house_of_spirit from glibc_2.23 works with 2.34 too and tcached version have separated file.

From one side Glibc-Version says about newest version with vulnerabilities and could have link to latest version.
But for house of spirit version of exploit for 2.23 doesn't have any differences from version for latest glibc.
So maybe link to oldest version isn't the best solution but isn't the worst as for me :)

In glibc's exploit for 2.23 you have to pass the linked list check , so you have to create a second fake chunk to bypass the checks. Since tcache is singled , you don't have to add the second chunk. It took me a while to understand why the code was creating a second fake chunk when I realise that it was referring for glibc versions using the fastbins.

Anyway, I don't want to insist. After all it is just a detail.

In glibc's exploit for 2.23 you have to pass the double linked list check , so you have to create a second fake chunk to bypass the checks. Since tcache is singled , you don't have to add the second chunk. It took me a while to understand why the code was creating a second fake chunk when I realise that it was referring for glibc versions using the fastbins.

but for house of spirit version of exploit for 2.23 doesn't have any differences from version for latest glibc.

The code is different

For tchaced attack there is https://github.com/shellphish/how2heap/blob/master/glibc_2.34/tcache_house_of_spirit.c

I think you are right. The links should point to the latest exploit versions. I'll go through all the links and fix the links.

I think you are right. The links should point to the latest exploit versions. I'll go through all the links and fix the links.

Is it meant house_of_spirit will be copy in all folder from glibc_2.23 up to glibc_2.34?

@fr0ster yes. And ofc with implementation changes for tcache filling and safe linking.
I want to preserve this to remind people that heap exploitation is not just about tcache. fastbin is also a thing.

It is fixed in the upstream.
I'm closing this :D


VS Code - Confirm that CodeActionsHandler still does the right thing

Describe the bug:
In OmniSharp/omnisharp-vscode#4988, I updated the CodeActionProvider class to return CodeActions (as per the name!) instead of legacy Commands. Now, I think that Razor's code action handling is dependent on the old Command behavior, assuming that it gets the code actions from omnisharp-vscode:
https://github.com/dotnet/razor-tooling/blob/56a1e44ce929406cf5d96a118c69f258c038390f/src/Razor/src/Microsoft.AspNetCore.Razor.VSCode/src/CodeActions/CodeActionsHandler.ts#L48-L51
The good news is that it turns out codeAction.title === codeAction.command.title, so even though the type returned by the command is different, things should still work. In theory.
However, even though I see CodeActions being returned by vscode.executeCodeActionProvider, they aren't showing up in VS Code. Is that a known issue or am I missing something? (I'm running all of this in a Codespace, so I wouldn't be surprised if messed something up.)

Basically,

If I can get confirmation that CodeActionsHandler is dependent on omnisharp-vscode's CodeActionProvider (and it seems like it is because I'm getting CodeActions back, not Commands), I can submit a PR to update the types.
Everything else I wrote is just me wondering if code actions are supposed to be working or not.

Version used:
VS Code, C# 1.24.0.
To reproduce:
Steps to reproduce the behavior:

Add a console.log after line 51 and observe that you're receiving CodeActions instead of Commands.
Write something that should clearly give you code actions, like private List<int> test; in a nullable context.

Expected behavior: Typings to match, and to get code actions.
Actual behavior: Neither :'(
Additional context:
N/A

@50Wliu do you see the same issue happen for english versions? As you mentioned there's the "title" check but that of course fails gloriously in non-english scenarios 😆

Yep, unfortunately :/.

Thanks for clarifying! So in that case it's not entirely known or not known. We've been overhauling the Razor language server recently and have unintentionally broken a few VSCode scenarios (this seems like one of them). That being said it is on our roadmap to get language server updates flowing to VSCode again once the dust settles (don't want to do an update with non-concrete bits). I'll mark this as bug and keep it on our radar for when things become more stable


Prevent removal of admin and default members from workspace chats

Details

This PR addresses an issue where workspace admins and default-added-users were inadvertently selectable for removal from workspace chats. To fix this, the PR implements controls based on user roles, as documented in workspace rooms and workspace chats.
Fixed Issues

$ https://github.com/Expensify/App/issues/35391
PROPOSAL: N/A

Pre-condition:
1. We need 4 accounts for this test:

Workspace Creator
Workspace Admin
Workspace Member
No-workspace member (invited)

2. Login in the app as "Workspace Creator"
3. Create a workspace
4. Go to the automatically created "Workspace Chat"
5. Go to the "Report Details"
6. Go to "Members" page > Click "Invite"
7. Invite all the other 3 accounts (admin, member, and invited) to the "Workspace Chat"
8. Still on the "Members" page, change the admin role to Administrator
8. Click on the "Global Fab" > "Start Chat" > Select "#Room" tab
9. Create a "workspace-room"
10. Invite all the other 3 accounts (admin, member, and invited) to the "workspace-room"
Tests:
1. Logged as the "Workspace Creator":
i. Go to the "Workspace Chat" > Report Details page
ii. Verify that the "Leave" button doesn't show, as you are a "workspace admin".
iii. Go to "Members" page
iv. Verify that you cannot select/remove admin and default added members
v. Verify that you can "Invite" and "Remove" (admin cannot be removed) members
vi. Go to the "workspace-room" > Report Details page
vii. Go to "Members" page
viii. Verify that you can "Invite" and "Remove" (you cannot remove yourself here) members
ix. Return to the "Report Details" page
x. Verify that the "Leave" button does show and you can leave the chat.
2. Logged as the "Workspace Admin":
i. Go to the "Workspace Chat" > Report Details page
ii. Verify that the "Leave" button doesn't show, as you are a "workspace admin".
iii. Go to "Members" page
iv. Verify that you cannot select/remove admin and default added members
v. Verify that you can "Invite" and "Remove" (admin cannot be removed) members
vi. Go to the "workspace-room" > Report Details page
vii. Go to "Members" page
viii. Verify that you can "Invite" and "Remove" (you cannot remove yourself here) members
ix. Return to the "Report Details" page
x. Verify that the "Leave" button does show and you can leave the chat.
3. Logged as the "Workspace Member":
i. Go to the "Workspace Chat" > Report Details page
ii. Verify that the "Invite" button does not show.
iii. Go to "Members" page
iv. Verify that you cannot "Invite" and "Remove" members.
v. Return to the "Report Details" page
vi. Verify that the "Leave" button does show and you can leave the chat.
vii. Logged as the "Workspace Member" > Go to the "workspace-room" > Report Details page
viii. Verify that the "Invite" button does not show.
ix. Verify that the "Leave" button does show and you can leave the chat.
x. Go to "Members" page
xi. Verify that you cannot "Invite" and "Remove" (you cannot remove yourself here) members.
4. Logged as the "Workspace Chat Invited":
i. Go to the "Workspace Chat" > Report Details page
ii. Verify that the "Invite" button does not show.
iii. Go to "Members" page
iv. Verify that you cannot "Invite" and "Remove" members.
v. Return to the "Report Details" page
vi. Verify that the "Leave" button does show and you can leave the chat.
vii. Logged as the "Workspace Room Invited" > Go to the "workspace-room" > Report Details page
viii. Verify that the "Invite" button does show and you can invite members to the chat.
ix. Verify that the "Leave" button does show and you can leave the chat.

[x] Verify that no errors appear in the JS console

Offline tests

N/A
QA Steps

Same as Tests
PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/95647348/61582245-2417-436b-9498-55cfdd3a1a81

Android: mWeb Chrome

https://github.com/Expensify/App/assets/95647348/0dd0572e-f3f7-40b8-8398-dffa387c3d83

iOS: Native

https://github.com/Expensify/App/assets/95647348/34d7a544-1859-43c3-ac24-c100d0713285

iOS: mWeb Safari

https://github.com/Expensify/App/assets/95647348/b3929bfc-e7f6-4c8d-9a80-9ece68d077bd

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/95647348/7a667544-00c3-430b-b38b-f62aa7582485

MacOS: Desktop

https://github.com/Expensify/App/assets/95647348/9dfe64a0-c5cb-4054-a953-812844f510df

@brunovjk can you fix the lint issues? I can then review the code.

@brunovjk can you fix the lint issues? I can then review the code.

This lint issue wasn't caused by us. It even has a reported issue for that. I fixed it anyway, but I can revert if needed. Thank you!

All good here @mananjadhav :D

Thanks @brunovjk for fixing this. I am currently testing it now.

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

Resolve conflicts.
Tested all the flows described in README here, and everything looks good to me.
Note: We still have a type error that is being resolved here, will "merge main" when fixed.

All yours @jasperhuangg  :D

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/jasperhuangg in version: 1.4.84-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

This PR is failing because of issue https://github.com/Expensify/App/issues/35391
The issue is reproducible in: Web
https://github.com/Expensify/App/assets/93399543/de0a01f7-755b-4a84-b3bf-833cfdf0b555

This PR is failing because of issue #35391
The issue is reproducible in: Web
Screen.Recording.2024-06-16.at.6.50.53.in.the.evening.mp4

I'm sorry, but the test steps were wrong. I fixed it now:

Logged as the "Workspace Member":
...
... Go to the "workspace-room"

xi. Verify that you cannot "Invite" and "Remove" (you cannot remove yourself here) members.

xi. Verify that you can "Invite" and "Remove" (you cannot remove yourself here) members.

🚀 Deployed to production by https://github.com/AndrewGable in version: 1.4.84-3 🚀

platform
result

🤖 android 🤖
failure ❌

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

PR is Pass according to the new step https://github.com/Expensify/App/pull/43065#issuecomment-2173968111
https://github.com/Expensify/App/assets/93399543/eb50207d-b177-4bf5-aab0-36dfa8ca6839


Fixed initial default namespace setup with current cluster setup

Motivation
Yesterday's fix was just setting the cluster up if the namespace was already there. Fixed the logic and also only writes the z-node if there are changes to be made.

retest this please


Question about deleting

I have been trying my very limited sparql skills on a persistent store with no luck.
I have a graph of owl:thing that can be myschema:containedIn owl:thing.
Most things have foaf:depiction foaf:image.
My problem now is that I want to delete thing A and all triples related to A in any direction.
I am not sure what is implemented and how I would express such a thing.
I have tried the following:
'PREFIX h: <http://dishoarder.com/hoard/1.0> \
DELETE {<'+context.uri+'> h:containedIn ?s} \
WHERE { \
  <'+context.uri+'> h:containedIn ?s . \
}'

And all I manage to do with that is delete everything in my graph :)
I'm sure it is my DELETE WHERE that is messed up somehow but it would be nice to be pointed in the right direction. Can I use the high level API delete somehow here? What is the best way to approach this?

I tried with a construct query using the resulting graph in the store.delete method.
I inspected the graph to see that it contained the triples I expected it to and it did.
However when passing the graph to delete all triples where removed.
I then tried to create the storage with persistent:false and then the delete works. It seems like delete does not work with the persistent store right now.

Looking in chrome I can see that the store is not emptied but it seems that no nodes can be reached from my root node. The IndexDB-store does not behave the same way as the inMemoryStore for me...

I have made a small example that shows one of the problems I've been having:
window.onload = function main() {
    rdfstore.create({persistent:true, name:'test',clear:true}, function(err, store) {
        store.registerDefaultProfileNamespaces();
store.setPrefix('h', 'http://example.com/hoard/1.0/');

        var insert = 'INSERT DATA { \
<http://example.com/things/root> a owl:thing; \
foaf:depiction <http://example.com/images/someimage.jpg> . \
<http://example.com/images/someimage.jpg> foaf:thumbnail <http://example.com/images/thumbs/someimage.jpg> . \
}';

        var insert2 = 'INSERT DATA { \
<http://example.com/things/child1> a owl:thing; \
foaf:depiction <http://example.com/images/someimage2.jpg>; \
h:containedIn <http://example.com/root> \
. \
<http://example.com/images/someimage2.jpg> foaf:thumbnail <http://example.com/images/thumbs/someimage2.jpg> . \
}';

        var construct = 'CONSTRUCT {<http://example.com/things/child1> ?p ?o} \
WHERE {<http://example.com/things/child1> ?p ?o}';

        console.log("insert ", insert);
        store.execute(insert, function(err, result){
            store.execute(insert2, function(e, r){
                if(err) {
                    console.log("error! ", err);
                }
                console.log("Seems to work...");
                store.execute(construct, function(e, graph){
                    console.log("graph ", graph);
                    store.delete(graph, function(err){
                        console.log("err? ", err);

                    store.execute('SELECT ?s WHERE  {?s ?p ?o}',
                                  function(err, results){
                                      results.forEach(function(triple){
                                          console.log("triple ", triple);
                                      });
                                  });
                    });
                });
            });
        });
    });
};

It gives me
Uncaught TypeError: Cannot read property 'token' of null(anonymous function) @ rdf_store.js:24534(anonymous function) @ rdf_store.js:23294(anonymous function) @ rdf_store.js:29571(anonymous function) @ rdf_store.js:29553(anonymous function) @ rdf_store.js:29534(anonymous function) @ rdf_store.js:29550(anonymous function) @ rdf_store.js:2956745.Lexicon.retrieve.async.seq.request.onsuccess @ rdf_store.js:23282

On the last select if I do store.delete(graph, ...) before that.
The constructed graph contains 3 triples as expected [child1 contained in root], [child1 depiction someimage2], [child1 a owl:thing]
I'll be digging some more. Just wanted to post an update with a reproducable error. Perhaps I'm doing something that is obviously wrong in which case I would appreciate a pointer.
/J

I'm not sure about this but it seem like shouldIndex should be false when calling normalizeQuad from QueryEngine.prototype._executeQuadDelete. It also seems like the indexDB store unregisters URLs prematurely from the Lexicon but not sure about that yet.

A stab in the dark is that the counter attribute on the URL is ignored in (or before) unregister.

Now uncommented var request = transaction.objectStore("uris").delete(oid); in Lexicon.prototype._unregisterTerm` and my code works (of course no URI's are deleted.
I guess what should happen is that the count-attribute should be checked and if the number of references are count > 1 then the uri should be updated with count = count -1. Otherwise the uri should be deleted.
Does that make sense?

ping @antoniogarrote

Hi @johlrogge, I've been aways for some days. I'll look at this asap.
Sorry for my late reply.

No worries, I have experimented with my idea in my last comment. It seems to do the trick but I'm not totally sure that the counter-field is always correctly incremented. I'm trying to verify this. I could push my changes to my fork tonight so that you can have a look at them and see if they look correct.

I pushed my fixes (work in progress) https://github.com/johlrogge/rdfstore-js/commit/7e423fa2970cfdaa570d0517b797d12c71661d04

@antoniogarrote I wonder if I have misounderstood the purpose of the counter attribute in persistent_lexicon.js. I thought it was intended for reference counting in order to be able to determine if a URI is referenced in a graph.
To debug I wrote a function that reads all the counter values and also summarizes how many refereferences there is to an ID in the persistent quad backend and the counter is always higher.
I have an idea to do the counting empirically instead and let the indexeddb actually count the occurences remaining occurences after removing a quad and if the count yields zero for a URI-id: remove it too.
The downside is that this would require 4 new indices S, P, O and G (I think) but it would a more robust way to clean the lexicon (I think).
Any obvious flaws in my thinking?


Add conflict support to graphql-serve

We should be able to detect conflicts using graphql-serve.
We can add another flag --conflict-client and on

CC @ssd71

/cc @craicoverflow, @machi1990
Automatically generated comment to notify maintainers


[Task]: Expose backgroundColor, borderRadius and boxShadow style properties on existing widgets

Is there an existing issue for this?

[X] I have searched the existing issues

SubTasks
Expose the following style properties on the property pane for appropriate widgets

[ ] bacground-color
[ ] box-shadow
[ ] border-radius

@sbalaji1192 Is the filepicker widget included in this change?

@jsartisan Could you answer the question above?

@cokoghenun @sbalaji1192 Yes. The file picker widget will be also enhanced as well with theming.


colored notifications

Hello,
First of all, thank you for the fantastic app! It has transformed my workflow.
I have a concern: previously, notifications were colored by the chosen color, but now only the app icon has the color. Could you please bring back that feature? It was perfect.
Thank you!

Did you recently update your system? Because on newer Android versions, it is no longer possible to modify the notification view, so no more custom background colors either.
I also miss this feature, but unfortunately there's nothing I can do.

oh!! i dont remember , i will try install older versions and test

i just tested v1.3.5 and same issue somge


[docker] Add initial documentation / framework for public full node support

Checkpointing this work as we make progress on opening up our full node access.
This docker compose and node config has been verified to work on a swarm
instances. Will update it once we have testnet publicly available.

Are there any issues that folks see with this? :D

@christinacelee, mind taking a look and stamping it if it seems sensible enough?

/land


How to tell if search is for single datetime? (Should str_to_interval return a single value for that?)

I'd guess this is a bug, but maybe not, so a question first:
The STAC API - Item Search specs define:

datetime
Single date+time, or a range ('/' separator), formatted to RFC 3339, section 5.6. Use double dots .. for open date ranges.

If only a single date+time is provided, I'd guess this implies one searches for an exact match?
Indeed, DateTimeType allows for a single value too:
DateTimeType = Union[
    datetime,
    Tuple[datetime, datetime],
    Tuple[datetime, None],
    Tuple[None, datetime],
]

All good so far. However, today's str_to_interval always returns a tuple. And that function is used as the converter for the search request:
class BaseSearchGetRequest(APIRequest):
    ...
    datetime: Optional[DateTimeType] = attr.ib(default=None, converter=str_to_interval)
   ...

So when implementing get_search how would one know if a single date+time was requested, or a range with an open end?
The tests only check intervals, so are not giving me the definitive answer. But I'm guessing this is an oversight?
(Of course I can provide a PR if this is indeed a bug.)

According to this, searching with a single datetime should be allowed.

Yes, a single value is allowed, and then I assume that implies one wants to search for an exact match, right? Then I will create a PR to make str_to_interval return a single datetime, not a tuple, for that use case.
On a related note, I noticed that a POST to /search gets me the original string value in datetime, plus additional values for start_date and end_date. And when supplying a single value, start_date ends up being None while the single value goes into end_date. Very much assuming that is wrong too. And tempted to make it work the same as for GET.
The POST payload I get from STAC Browser is {"datetime": "<single date or range>"}. In the search_request argument in post_search today this gets me:

datetime
start_date
end_date

2012-07-02T00:00:00Z
None
2012-07-02 00:00

2012-07-02T00:00:00Z/..
2012-07-02 00:00
None

../2012-07-03T23:59:59Z
None
2012-07-03 00:00

So, what if a PR would include:

For GET /search:

Make datetime not always be a tuple of datetime, but a single value if applicable

For POST:

Make search_request.datetime behave like for GET, so no longer return the original string but a DateTimeType
Remove start_date and end_date

Oh, I now see that the datetime, start_date and end_date of the POST search originates from stac-pydantic (the latter two being calculated properties).
Guess that makes changing POST a bit tedious. Even more: the behavior for a single value (start_date being None, and end_date getting the single value) is quite explicit there:
@property
def start_date(self) -> Optional[dt]:
    values = (self.datetime or "").split("/")
    if len(values) == 1:
        return None
    if values[0] == ".." or values[0] == "":
        return None
    return parse_rfc3339(values[0])

@property
def end_date(self) -> Optional[dt]:
    values = (self.datetime or "").split("/")
    if len(values) == 1:
        return parse_rfc3339(values[0])
    if values[1] == ".." or values[1] == "":
        return None
    return parse_rfc3339(values[1])

It can be hard to get an exact match on a datetime I guess.

 I wonder if is documented in the spec anywhere?

For POST: yes, if the user's implementation of the abstract post_search relies on those two properties.
For GET, the user's implementation of the abstract get_search is likely the other way around, when getting the tuple and seeing the first item having a value, and the second being None. For GET, there is currently no way to tell apart a single-value "2012-07-02T01:30:00Z" or a open-ended range "2012-07-02T01:30:00Z/..".
For future readers, I'm doing this now in my own code for POST:
def post_search(
    self, search_request: BaseSearchPostRequest, **kwargs
) -> ItemCollection:
    # A `{"datetime": "2012-07-02T01:30:00Z/2012-07-02T13:30:00Z"}`
    # will make stac-pydantic leave `datetime` at its original
    # string value, and add a `start_date` and `end_date` to
    # `search_request`. For `{"datetime": "2012-07-02T01:30:00Z"}`
    # the value goes into `end_date`, leaving `start_date` at None.
    # So, we need to parse the string value ourselves here.
    # See https://github.com/stac-utils/stac-fastapi/issues/688
    if search_request.datetime:
        search_request.datetime = str_to_interval(search_request.datetime)

    return self.get_search(**search_request.model_dump())

That will work for me, if I fix str_to_interval to return a single value if it's given a single date.
I'll create another issue in stac-pydantic to discuss its handling of datetime.

looking at https://docs.ogc.org/is/17-069r4/17-069r4.html#_parameter_datetime it seem that if datetime is only one value, it should only match the items with the identical value


TypeError: Cannot destructure property 'media' of 'theme.sanity' as it is undefined.

Hello there!
I got an error TypeError: Cannot destructure property 'media' of 'theme.sanity' as it is undefined. when I had attempted to create a field
    defineField({
      title: 'Picture from cloudinary',
      name: 'cloudinaryPic',
      type: 'cloudinary.asset',
      description: 'Image from cloudinary',
    })

using  cloudinarySchemaPlugin from "sanity-plugin-cloudinary": "1.1.1"

My environment
"sanity": "3",
"sanity-plugin-cloudinary": "^1.1.1",
"react": "18.2.0",
"react-dom": "18.2.0",

Some thoughts on the error

sanity-plugin-cloudinary has @sanity/ui as its dependency
@sanity/ui declares theme as a required prop for responsiveStackSpaceStyle function
But sanity-plugin-cloudinary doesn't provide the theme neither here nor there
Hense we got the error on this string (see a  picture above)

Works with the following versions:
"sanity-plugin-cloudinary": "~1.1.1",
"sanity": "3.14.2",
"@sanity/types": "3.14.2",
"@sanity/vision": "3.14.2",

BTW: When these kind of issues arise (conflicts of dependencies), you can just make sure both are installed like this:
npm i  --legacy-peer-deps


Refs #28621 -- Fixed crash of annotations with nested OuterRef.

https://code.djangoproject.com/ticket/28621

@sir-sigurd Thanks :+1:


CMakeLists.txt - bad command order warning / command effects no targets warning.

Brief Issue Summary
Request
It would be nice to have a warning message that is generated during cmake configuration time when a command in the CMakeLists.txt has no effect. More specifically - this is the case when a command that modifies the environment is passed after the last target has been specified.
Example

The compiler and intellisense will not actually have c++17 as the specified standard.
I think it should be easy to detect such cases and give a warning to the user.
Motivation
Lately I had an issue where a project would compile just fine, but Cmake & C/C++ extension would show a few errors, relating to syntax which is only supported in c++17 (the toolchain did not recognize that the c++ standard was set to 17).
The problem ended up being (like many times before) - a bad ordering of the mckae commands in the CMakeLists.txt file.
In general - the ordering of commands in cmake can be quite confusing with target specific commands having to go bellow targets and general commands having to go before, and anything that could help with that would be appreciated.
CMake Tools Diagnostics
No response
Debug Log
No response
Additional Information
No response

@yosefgoren Thanks for the suggestion, however, this is an external feature request, please forward this request to here!
We'll mark this as external and close it, feel free to follow up on the link provided above.


Question About .yaml verification failure and Routines

In my pull requests I have been facing the following .yaml verification error (in addition to layout errors I mentioned in a separate Issue):

Could it be because there are no "Routines" in my .yaml file? How could I go about fixing this?
Thank you!

i also ran into this error and fixed it by adding
Routines:     []
to the bottom of my yaml file.

I fixed the YAML check to look for Sequences instead of Routines.


Decompiler alignment error when trying to examine function

Describe the bug
I'm trying to examine an old German DOS game to figure out how it works, and when I tried to examine function FUN_2d77_30fe(), it gives me an error: "Exception while decompiling 2d77:30fe: GHIDRA/decompiler alignment error"
To Reproduce
Steps to reproduce the behavior:

Open the attached exe file in Ghidra
Analyze with 'Decompiler Parameter ID' enabled
Go to the mentioned function

Expected behavior
I expected to be able to browse the decompiled function just like any other.
Screenshots

Attachments
HW.zip
Environment (please complete the following information):

OS: Windows 10
Java Version: 12.0.2
Ghidra Version: 9.0.4

Additional context
I have already changed some function & variable names before going to the erroneous function, not sure if/how that makes a difference.

Update: looked at the console, turns out my issue is a clone of #239


HandlerInvocationMiddleware will resolve services via the IHandlerResolver

Why?
At the moment when the subscription pipeline is built the handlers are all resolved and cached. This causes an issue with other containers, such as SimpleInjector as we are unable to setup a scope for resolving injected instances within the handler itself.
What does this do?
Instead of resolving all the handlers when the pipeline is built, we leverage the IHandlerResolver to resolver handlers on demand.
Example of use
When using SimpleInjector, I could setup a middleware to run earlier in the pipeline to initialise a scope:
    public class SimpleInjectorScopeMiddleware : MiddlewareBase<HandleMessageContext, bool>
    {
        private readonly Container _container;

        public SimpleInjectorScopeMiddleware(Container container)
        {
            _container = container;
        }

        protected override async Task<bool> RunInnerAsync(
            HandleMessageContext context,
            Func<CancellationToken, Task<bool>> func,
            CancellationToken stoppingToken)
        {
            await using (AsyncScopedLifestyle.BeginScope(_container))
            {
                return await func(stoppingToken);
            }
        }
    }

    // Somewhere else for convenience
    public static class MiddlewareExtensions
    {
        public static HandlerMiddlewareBuilder UseSimpleInjectorScope(this HandlerMiddlewareBuilder builder)
        {
            builder.Use<SimpleInjectorScopeMiddleware>();

            return builder;
        }
    }

This could then be added to a subscription as such:
                        x.ForTopic<TestMessage>(
                            cfg =>
                            {
                                cfg.WithMiddlewareConfiguration(m => { m.UseSimpleInjectorScope(); });
                            });

Now when receiving a message, my handler will be resolved in scope and I can use injected dependencies correctly.
Alternatives
There are other ways to solve this problem, the main one would be to allow us to swap in our own HandlerInvocationMiddleware - then we could do the scoping in there. However the docs state, and the code seems to reflect that we are unable to provide our own version. If we could, we could set this up as a global middleware and we wouldn't need to set this scoped middleware up on every subscription which would be great.
Another alternative is for us to use a library like Mediator, and every IHandlerAsync<> is simply a shell which invokes a mediator pipeline which then sets up our scoping. However, this seems really messy and a bleeding of concerns. In addition it would require us to make sweeping changes across our codebase to convert from v6 to v7.
As an aside, in v6 we define a wrapper when we instantiate the handler during setup which sets up the scope and then resolves the handler inside, effectively acting like a middleware, but this is no longer possible. However for reference:
public class HandlerResolverWrapper<T> : IHandlerAsync<T>
{
    private readonly Container _container;

    public HandlerResolverWrapper(Container container)
    {
        _container = container;
    }

    public async Task<bool> Handle(T message)
    {
        await using (AsyncScopedLifestyle.BeginScope(_container))
        {
            try
            {
                var handler = _container.GetInstance<IHandlerAsync<T>>();

                return await handler.Handle(message);
            }
            catch (ActivationException ex)
            {
                Log.Logger.Error(ex, "Failed to find a handler for {messageType}", message.GetType().Name);

                return false;
            }
        }
    }
}

And it is configured as such:
        stack.WithSqsTopicSubscriber()
                .IntoQueue(null)
                .WithMessageHandler(new HandlerResolverWrapper<TestMessage>(container));

Maybe I'm missing something completely obvious, but I have been playing with v7 and this has been a huge blocker for working with SimpleInjector which we use extensively.
If we could resolve this issue using my approach here (or similar), where the handlers are resolved on demand, it would also give cool middleware functionality, such as defining a subscription to have a UoW applied to it.
Order of middlewares would be:

Scope (setup scope for handler resolution)
UoW (pull session from container, begin a transaction)
[internal middlewares, to resolving]
UoW (handle commit/rollback)
Scope (close down scope and resolved instances)

This PR isn't ready for merge, it needs a clean up, however from what I can see the UseHandler<> I modified was there solely for testing, so making this change would not produce any breaking changes.
Would love to hear thoughts and start a discussion on this.
Many thanks!
Mike

Thanks for taking the time to look at this @martincostello - this is the package I'm looking at open sourcing at the moment which would be dependant on the changes - it's very much a work in progress which has come about from the last few days finally getting around to look at upgrading our infrastructure to v7 of JustSaying: https://github.com/Audiu/JustSaying.Extensions.DependencyInjection.SimpleInjector
I hope that a SimpleInjector DI library to complement the other DI examples would be of some use to other projects.

Hey @martincostello
Turns out we can scrap this entire PR. The docs are wrong, just found a sample by accident which shows how to setup middleware. Further more, the defaults can be replaced
https://justeat.gitbook.io/justsaying/subscriptions/middleware

This is incorrect, this setup will not handle messages. Turns out this was my issue.
https://github.com/justeattakeaway/JustSaying/tree/main/samples/src/JustSaying.Sample.Middleware - this actual shows how to do it properly.
Therefore in my case:
                 x.ForTopic<TestMessage>(
                            cfg =>
                            {
                                cfg.WithMiddlewareConfiguration(m =>
                                {
                                    m.UseSimpleInjectorScope();
                                    m.UseDefaults<TestMessage>(typeof(TestMessageHandler)); // Add default middleware pipeline
                                });
                            });

This now handles messages correctly and also correctly wraps in a scope. Sorry I was misled by the docs and then couldn't see the wood for the trees.
In reality, this PR should be for a docs update, nothing more 😂


Create signed tags

Closes #11
Instead of creating tags with the GitHub API, we can use the Git CLI instead, which allows us to sign our tags with a GPG key.
This should work in theory but I have not yet tested it at all.

Very cool, thanks for working on this!

This is working now, I'll look at merging/deploying tomorrow when I'm around to monitor it.

Awesome, thank you!
Can you also upload the GPG public key to the JuliaRegistries GitHub
account? (
https://help.github.com/en/articles/adding-a-new-gpg-key-to-your-github-account
)
That way, the GitHub website will display the green “Verified” box next to
the tags.
On Mon, May 13, 2019 at 01:48 Chris de Graaf<EMAIL_ADDRESS>wrote:

This is working now, I'll look at merging/deploying tomorrow when I'm
around to monitor it.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/JuliaRegistries/TagBot/pull/12#issuecomment-491684319,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABK4BLJBKE55GIG54HRLPX3PVD6L7ANCNFSM4HMK7SLQ
.

Already done, in @JuliaTagBot's account.

I've deployed this now, and will merge at the end of the day provided nothing breaks.

This is great! Thank you @christopher-dG for putting this together so quickly!


Write Byte Error

Foremost, thank you for your work in the field. I have included our wiring below, for your reference. We also have followed the directions concerning installation of software, and upon execution of the sample, we are getting the following error message:
" Write Byte error: 121PCA9685 "
Any assistance would be greatly appreciated.

There's no information as to if the Jetson could actually see the PCA9685.
There is no information provided as to which Jetson you are using.
There is no information provided as to which version of L4T you are using.
Here's an article, did you do any of this: http://www.jetsonhacks.com/2016/01/26/jetson-racecar-part-3-esc-motor-control/

We are using a Jetson TX2, with Jetpack 3.0, and L4T R27.1. I am including another screenshot from our attempt to detect the i2c device using the sudo i2cdetect -y -r 1 command.

We are also working through the article you reference, but thought that the part 2 sequence of tutorials would be the first we would test. Thanks again.

This repository is for the NVIDIA Jetson TK1. As you can see from the i2cdetect in your image, the PCA9685 is not detected.
The Jetson TX1 and TX2 have different I2C bus numbering schemes, you may be able to find it on I2C bus 0, i.e.
$ sudo i2detect -y -r 0
The PCA9685 should be at location 0x40 in normal operation. However, I have not tested this . You can enumerate through the different I2C busses and try to find.

We have found success using the sudo i2cdetect -y -r 0 command.

We are still getting the following errors:

I understand this driver was created for the TK1, and not the TX2. I know you mentioned going on to the Part 3 tutorial. Do you believe we would be better moving onto the part 3? Thank you for your time.

We did not change anything in the code outside of what was recommended, (i.e., removing the commented portions of the code for steering calibration.)

You might want to change the I2C bus (kI2CBus) of the PCA9685 object to be 0.
You should debug the code for your application.

Will do. Will circle back once we are able to provide a log.

I have a similar issue. In my case the address is 70.  In the example code, ie:
PCA9685 *pca9685 = new PCA9685(0x70) ;

HI @michaelschleiss, did you managed to solve this? I'm seeing only address of 70 like you and I still getting "Write byte error".
@eanmikale according to your description I believe you didn't plugged 3.3V to VCC.

HI @michaelschleiss, did you managed to solve this? I'm seeing only address of 70 like you and I still getting "Write byte error".
@eanmikale according to your description I believe you didn't plugged 3.3V to VCC.
Update: I didn't change the BUS to 0.. now it's working

hay guys .. I CONNECT  MY PCA9685 WITH SERVO WHEN I RUN $ SUDO I2DETECT -Y -R 0 I GOT THIS
:....

IS IT FINE  .. when i run this script  after making  $ sudo make .. the servo donot show any response .. plz any one help... thanks in advance

The PCA9685 is not available in the screenshot you show.

to set device to bus 1 ... i have to write this command..$ SUDO I2DETECT -Y -R 1 .. or something else..

You have to wire the device appropriately. The command is correct.

ok jetsonhacks.. thanks for your help  working time is over .so i will look in this tomorrow... again thanks...

I am using jetson tx2 PCA9685 is getting detected in address 0x40 on bus 1 but it keeps on giving "writeByte Error". I am using bluerobotics Basic ESC at 300 Hz and pwm values are also between 1100-1900

To use the I2C bus, you need to have the proper permissions. For example:
$ sudo ./servoExample

Write Byte error usually indicates that either the wiring is incorrect (the Jetson cannot see the PCA9685). Use the i2cdetect tool to determine if the device is visible.
The I2C bus requires root permission for access. If the Jetson can see the device, and you are receiving the "Write Byte" error, check to make sure that you are running using sudo, ie:
sudo ./servoExample

jetsonhacks .hope u r having a good day..
i have successfully moved servo with TX2 by editing the C code in servoexample.cpp file. Now the issue is that i hve to controul servos from my python application. how can i controul that .. There are certain  Adafruit libraries written in python but aren't

sir, which library??  i have to generate pwm against particular situation by giving angles to rotate it so  calling C code from python will not solve my problem..
controling servo from python is the problem

@sharoseali You should write Python code to control the servo.

thanks for the help but another problem came up it is not working means the thrusters are not rotating. I tried changing the frequency and PWM value but nothing happened, Than I changed the frequency in JHPWMDriver.cpp
from:
void PCA9685::setPWMFrequency ( float frequency ) {
printf("Setting PCA9685 PWM frequency to %f Hz\n",frequency) ;
float rangedFrequency = fmin(fmax(frequency,40),1000) ;
int prescale = (int)(25000000.0f / (4096 * rangedFrequency) - 0.5f) ;
// For debugging
// printf("PCA9685 Prescale: 0x%02X\n",prescale) ;
int oldMode = readByte(PCA9685_MODE1) ;
int newMode = ( oldMode & 0x7F ) | PCA9685_SLEEP ;
writeByte(PCA9685_MODE1, newMode) ;
writeByte(PCA9685_PRE_SCALE, prescale) ;
writeByte(PCA9685_MODE1, oldMode) ;
// Wait for oscillator to stabilize
usleep(5000) ;
writeByte(PCA9685_MODE1, oldMode | PCA9685_RESTART) ;
}
To:
void PCA9685::setPWMFrequency ( float frequency ) {
printf("Setting PCA9685 PWM frequency to %f Hz\n",frequency) ;
float rangedFrequency = fmin(fmax(frequency,40),1000) ;
int prescale = (int)(25000000.0f / 9600 - 0.5f) ;
// For debugging
// printf("PCA9685 Prescale: 0x%02X\n",prescale) ;
int oldMode = readByte(PCA9685_MODE1) ;
int newMode = ( oldMode & 0x7F ) | PCA9685_SLEEP ;
writeByte(PCA9685_MODE1, newMode) ;
writeByte(PCA9685_PRE_SCALE, prescale) ;
writeByte(PCA9685_MODE1, oldMode) ;
// Wait for oscillator to stabilize
usleep(5000) ;
writeByte(PCA9685_MODE1, oldMode | PCA9685_RESTART) ;
}
changed the PWM to:
while(pca9685->error >= 0 && getkey() != 27){
        pca9685->setPWM(0,0,1500) ;
        //pca9685->setPWM(1,0,servoMin) ;

        sleep(2) ;
        pca9685->setPWM(0,0,1700) ;
        //pca9685->setPWM(1,0,map(90,0,180,servoMin, servoMax)) ;
        sleep(2) ;
    }

and my pwm was 1700 so it sarted rotating but at 1500 it stopped. Motor was running in 1300 and 1500 only and for any other pwm it will remain stopped . Thank You Again for any suggestions.

I'm glad you got it to work. As noted in the example, that code is for controlling a servo motor, specifically a  a Robot Geek RGS-13 Servo. ESCs are different. If you were perhaps to look at the more technical details of controlling your BESC, you would see:
Stopped | 1500 microseconds
Max forward | 1900 microseconds
Max reverse | 1100 microseconds
which might help explain your code.

Hi @jetsonhacks , I met some strange problem when using the PCA9685 board.
It works fine following the setup by changing I2C bus number as 0 and address 0x70 for TX2.
But probably due to some mistaken power-off of the TX2 (while it is still connecting to PCA9685 with 5V power supply),  after restart the TX2, the address using i2c tools show 0x71 and 0x72, the same as the result shown in "eanmikale commented on Dec 28, 2017".     Running one program trying to use address 0x71, and the program will not write the address successfully, but the i2c checking result comes back to 0x70 after that running.
After the address is back to 0x70, the writing will not show "write Byte error", but when running the program, the PCA9685 does not successfully provide suitable signal anymore.
A quick small summary. At beginning PCA9685 controls RaceCar suitably, but after restart the TX2, address is changing to 0x71 0x72 using "sudo i2cdetect -y -r 0". Changing source code using "0x71" and run the program, the address is back to 0x70 using "sudo i2cdetect -y -r 0", but the program does not controls RaceCar anymore.
It is quite strange to me and I have no knowledge about it. Do you think the PCA9685 board is broken due to some bad usage?

I have not experienced this kind of issue. The address of the PCA9685 should be fixed, and not change. I am not sure why it would change to two addresses, that seems really strange. If you find the issue, please let us know.

Hi @jetsonhacks  I hope you have a great day.
I try all things above but I have an same error.
PCA9685 Device Address: 0x40 PCA9685 Write Byte error: 121PCA9685 Write Byte error: 121PCA9685 Write Byte error: 121PCA9685 Write Byte error: 121PCA9685 Write Byte error: 121PCA9685 Write Byte error: 121Setting PCA9685 PWM frequency to 60.000000 Hz PCA9685 Read Byte error: 121PCA9685 Write Byte error: 121PCA9685 Write Byte error: 121PCA9685 Write Byte error: 121PCA9685 Write Byte error: 121Hit ESC key to exit
I'm using jetson tx2 with jetpack 4.2.2
I connected pin1-vcc pin6-gnd pin27-SDA pin28-SCL to use I2C bus 0.
 I tried lots of things that I can but it doesn't work.
What should I do? Thanks for read this.

@qiakeyufeiniao  I have a same problem with you. How did you solve it?

Same problem here, it actually occured with two PCA9685 boards of me. Would be great to know what causes it :)

Hi @jetsonhacks , I met some strange problem when using the PCA9685 board.
It works fine following the setup by changing I2C bus number as 0 and address 0x70 for TX2.
But probably due to some mistaken power-off of the TX2 (while it is still connecting to PCA9685 with 5V power supply), after restart the TX2, the address using i2c tools show 0x71 and 0x72, the same as the result shown in "eanmikale commented on Dec 28, 2017". Running one program trying to use address 0x71, and the program will not write the address successfully, but the i2c checking result comes back to 0x70 after that running.
After the address is back to 0x70, the writing will not show "write Byte error", but when running the program, the PCA9685 does not successfully provide suitable signal anymore.
A quick small summary. At beginning PCA9685 controls RaceCar suitably, but after restart the TX2, address is changing to 0x71 0x72 using "sudo i2cdetect -y -r 0". Changing source code using "0x71" and run the program, the address is back to 0x70 using "sudo i2cdetect -y -r 0", but the program does not controls RaceCar anymore.
It is quite strange to me and I have no knowledge about it. Do you think the PCA9685 board is broken due to some bad usage?

I am having the exactly same problem.

@qiakeyufeiniao I am having the exact same problem with several different PCA9685 boards by connecting with an Nvidia TX2 (with Orbitty carrier board).


Improving sensitive attributed detection

Sensitive attribute detection is quite rough at the moment. It easily gets false positives with things like bigcorp_eks_aux__externalsecrets_bingo_version , where it's a version of an externalsecrets , nothing wrong here....

@fproulx-boostsecurity  - looks like it needs rebasing then we can merge, thanks


NYX - ensure robot gets to correct status after mount/dismount

The robot currently assumes that the robot is successful in its mounting and dismounting functions. This could get the LSDC in a funny state if the previous function was not successful but LSDC thinks it was. For example, if a mount failed, LSDC may request a dismount even though the mount was not successful.
Perform a check at the end of the mount and dismount functions - with currently available hardware, the spindle occupied flag is probably the best way to determine this.

As with the governor, making this as reliable as possible will minimize issues in production

looks like the checks for status were commented-out, presumably for testing. restored. the links to the commits should come into this ticket soon.

finished as a merged pull request. closing.


Frequent "NO JSON" error messages

I frequently get NO JSON error messages on applestrudel nodes. The image below is an example. All this sequence does is to set the normal or quiet volume on 3 echoes I most often use. I added a 1s delay between them thinking the issue might be due to commands being issued too fast to multiple devices, but it clearly did not help in the example below:

[{"id":"a7a50df4d4bc87a6","type":"alexa-remote-routine","z":"b04104f328152109","name":"Volume - Living Room Echo","account":"8c670444753716f9","routineNode":{"type":"volume","payload":{"value":{"type":"msg","value":"volume"},"mode":{"type":"str","value":"set"},"devices":["G2A1A60304370EPE"]}},"x":800,"y":1040,"wires":[["4ad58710fe186a47"]]},{"id":"78d032dca92c38c1","type":"inject","z":"b04104f328152109","name":"Volume 60","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":240,"y":1120,"wires":[["53c28be690b57176"]]},{"id":"71f9302072c83608","type":"inject","z":"b04104f328152109","name":"Volume 30","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":240,"y":960,"wires":[["04d0aec8a67ffbf2"]]},{"id":"1924984cb0adea31","type":"server-state-changed","z":"b04104f328152109","name":"Quiet Mode","server":"6f1799ba.17e938","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.quiet_mode","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":230,"y":1040,"wires":[["04d0aec8a67ffbf2"],["53c28be690b57176"]]},{"id":"04d0aec8a67ffbf2","type":"change","z":"b04104f328152109","name":"Volume - Quiet","rules":[{"t":"set","p":"volume","pt":"msg","to":"30","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":480,"y":1000,"wires":[["a7a50df4d4bc87a6"]]},{"id":"53c28be690b57176","type":"change","z":"b04104f328152109","name":"Volume - Normal","rules":[{"t":"set","p":"volume","pt":"msg","to":"60","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":1080,"wires":[["a7a50df4d4bc87a6"]]},{"id":"8c148d5be7686ceb","type":"comment","z":"b04104f328152109","name":"Change volume based on Quiet Mode","info":"","x":1030,"y":940,"wires":[]},{"id":"d837aad6881aa9ad","type":"alexa-remote-routine","z":"b04104f328152109","name":"Volume - Kitchen Echo Show","account":"8c670444753716f9","routineNode":{"type":"volume","payload":{"value":{"type":"msg","value":"volume"},"mode":{"type":"str","value":"set"},"devices":["G000RA07845712UK"]}},"x":1120,"y":1040,"wires":[["8bb46901796082cf"]]},{"id":"e1cc573daa45b089","type":"alexa-remote-routine","z":"b04104f328152109","name":"Volume - Master Bedroom Echo","account":"8c670444753716f9","routineNode":{"type":"volume","payload":{"value":{"type":"msg","value":"volume"},"mode":{"type":"str","value":"set"},"devices":["G090P308746204ET"]}},"x":1450,"y":1040,"wires":[[]]},{"id":"4ad58710fe186a47","type":"delay","z":"b04104f328152109","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":960,"y":1120,"wires":[["d837aad6881aa9ad"]]},{"id":"8bb46901796082cf","type":"delay","z":"b04104f328152109","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1280,"y":1120,"wires":[["e1cc573daa45b089"]]},{"id":"6e0752c01f64da71","type":"comment","z":"b04104f328152109","name":"Delay = attempt to solve/reduce NO JSON error","info":"","x":1560,"y":1120,"wires":[]},{"id":"8c670444753716f9","type":"alexa-remote-account","name":"","authMethod":"proxy","proxyOwnIp":"<IP_ADDRESS>","proxyPort":"3456","cookieFile":"/config/node-red/amazon.txt","refreshInterval":"3","alexaServiceHost":"pitangui.amazon.com","amazonPage":"amazon.com","acceptLanguage":"en-US","onKeywordInLanguage":"","userAgent":"","useWsMqtt":"on","autoInit":"on"},{"id":"6f1799ba.17e938","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]
I can trigger the sequence many times and which one fails, if any, varies randomly. Usually one run and the error(s) clear but this morning I had to press the Inject 60 at least 5 or 6 times as I kept getting errors on the 2nd or 3rd echo node.

Try, just for testing, 5s delay between the nodes. I believe it's a race condition

Put your set volume nodes in parallel.
In my experience, when I use the set volume function the message payload is not passed through.

@bbindreiter I set the delay to 5s and while it may happen less frequently, I can easily cause the error by pressing the inject node while it is still working on the previous instance. It doesn't look right to me as the one that reports the failure is sometimes not even the one that is receiving the new update. In other words, the 1st echo got it's volume and the 1st delay is running. I press the inject button and the 2nd echo fails while the delay is still counting down.

[{"id":"a7a50df4d4bc87a6","type":"alexa-remote-routine","z":"b04104f328152109","name":"Volume - Living Room Echo","account":"8c670444753716f9","routineNode":{"type":"volume","payload":{"value":{"type":"msg","value":"volume"},"mode":{"type":"str","value":"set"},"devices":["G2A1A60304370EPE"]}},"x":820,"y":1040,"wires":[["4ad58710fe186a47"]]},{"id":"78d032dca92c38c1","type":"inject","z":"b04104f328152109","name":"Volume 60","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":240,"y":1120,"wires":[["53c28be690b57176"]]},{"id":"71f9302072c83608","type":"inject","z":"b04104f328152109","name":"Volume 30","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"true","payloadType":"bool","x":240,"y":1000,"wires":[["04d0aec8a67ffbf2"]]},{"id":"1924984cb0adea31","type":"server-state-changed","z":"b04104f328152109","name":"Quiet Mode","server":"6f1799ba.17e938","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.quiet_mode","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":230,"y":1060,"wires":[["04d0aec8a67ffbf2"],["53c28be690b57176"]]},{"id":"04d0aec8a67ffbf2","type":"change","z":"b04104f328152109","name":"Volume - Quiet (30)","rules":[{"t":"set","p":"volume","pt":"msg","to":"30","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":490,"y":1040,"wires":[["a7a50df4d4bc87a6"]]},{"id":"53c28be690b57176","type":"change","z":"b04104f328152109","name":"Volume - Normal (60)","rules":[{"t":"set","p":"volume","pt":"msg","to":"60","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":500,"y":1100,"wires":[["a7a50df4d4bc87a6"]]},{"id":"8c148d5be7686ceb","type":"comment","z":"b04104f328152109","name":"Change volume based on Quiet Mode","info":"","x":310,"y":960,"wires":[]},{"id":"d837aad6881aa9ad","type":"alexa-remote-routine","z":"b04104f328152109","name":"Volume - Kitchen Echo Show","account":"8c670444753716f9","routineNode":{"type":"volume","payload":{"value":{"type":"msg","value":"volume"},"mode":{"type":"str","value":"set"},"devices":["G000RA07845712UK"]}},"x":820,"y":1120,"wires":[["ed9dfe072c9e6c14"]]},{"id":"e1cc573daa45b089","type":"alexa-remote-routine","z":"b04104f328152109","name":"Volume - Master Bedroom Echo","account":"8c670444753716f9","routineNode":{"type":"volume","payload":{"value":{"type":"msg","value":"volume"},"mode":{"type":"str","value":"set"},"devices":["G090P308746204ET"]}},"x":830,"y":1200,"wires":[[]]},{"id":"4ad58710fe186a47","type":"delay","z":"b04104f328152109","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1060,"y":1040,"wires":[["d837aad6881aa9ad"]]},{"id":"b5cdd03ebe02e5b8","type":"change","z":"b04104f328152109","name":"Volume - Normal (50)","rules":[{"t":"set","p":"volume","pt":"msg","to":"50","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":500,"y":1200,"wires":[["e1cc573daa45b089"]]},{"id":"ed9dfe072c9e6c14","type":"delay","z":"b04104f328152109","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1060,"y":1120,"wires":[["b5cdd03ebe02e5b8"]]},{"id":"8c670444753716f9","type":"alexa-remote-account","name":"","authMethod":"proxy","proxyOwnIp":"<IP_ADDRESS>","proxyPort":"3456","cookieFile":"/config/node-red/amazon.txt","refreshInterval":"3","alexaServiceHost":"pitangui.amazon.com","amazonPage":"amazon.com","acceptLanguage":"en-US","onKeywordInLanguage":"","userAgent":"","useWsMqtt":"on","autoInit":"on"},{"id":"6f1799ba.17e938","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]

@TheNutHouse84 Based on my observations with the debug node, msg.volume never fails to be passed along. Could be due to the fact I am not using msg.payload - no idea. It was in parallel at first but I wanted to trigger the volume change one at a time to see if it was a race condition. I could have left it in parallel and used increasing delays though.

I'm seeing this issue too, sadly.

been fighting with this error for months and months, since the original node. I did add a delay node which seems to help but doesn't really seem to be a permanent solution.
any ideas?

I can reproduce the problem as well when setting the volume. Will try to have a look asap

I can reproduce the problem as well when setting the volume. Will try to have a look asap

I'm pretty sure it's somehow related with sending two messages within X seconds.
As a workaround, instead of using two routine nodes in sequence to set volume + music / TTS, I've started using a "serial" command and so far (2h so not exactly sure this fixes it) it seems to work!

Can reproduce the problem!

I'm still having this issue. Anyone else?

I presume this means there's a fix now?

@jonferreira I have not seen the issue in a long time so I presume something changed, or maybe it is due to the small delays I added between operations on different echos. Are you still seeing the issue?

I have to say I was getting them like crazy but two things sorted it out. First, I build in small delays before each request for echo to do something. The second thing I did was move my echos off my guest Wi-Fi and into my primary Wi-Fi. That has been an all around good thing for eliminating a variety of different problems I was having.


docs: update weekly-report-0524

Don't forget to add docs:  in the title next time, and you should add some descriptions to explain what you changed in this pull request. It really helps reviewers to better understand what you are trying to do in the pull request, especially when multiple files are involved.

Don't forget to add docs:  in the title next time, and you should add some descriptions to explain what you changed in this pull request. It really helps reviewers to better understand what you are trying to do in the pull request, especially when multiple files are involved.

cc @Qizeng-api7


Add a command to get Android classpath for IDE's?

I'm looking into how to solve: https://github.com/flutter/flutter-intellij/issues/966
We need to find out which jar files to add to the classpath so that IntelliJ can resolve imports in Java files. This will change depending on which dependencies the user has added to the dependencies section in build.gradle. Also, it may change in future Gradle releases. (In particular, it looks like the exploded-aar directory may go away soon with Android's new build cache.)
The only way I know to get info out of Gradle is to execute code in the Gradle environment. But the flutter command already launches Gradle as part of flutter run. If we use the flutter command to launch Gradle for this use case too, it will ensure consistency.
Therefore, I propose adding a flutter ide_info command which prints out a JSON file describing the location of interesting build settings. Maybe it looks something like:
{
  "androidHome: "/some_path_to_android/home",
  "androidJars": ["/some/path/to/flutter.jar", "/some/path/to/another.jar", ...]
}

That way, when something about how Flutter uses Gradle changes, we can fix things in flutter_tools rather than in the Java plugins.
(It also lets us avoid JetBrains Gradle integration, which looks really complicated for the user and likely to change.)

An alternate proposal would be to implement flutter doctor --machine: https://github.com/flutter/flutter-intellij/issues/980
But I think it would make sense for it to be its own command, because we aren't necessarily going to want to emit the same information (or try to keep them in sync).

@devoncarew FYI

Leveraging the info in flutter_tools makes a lot of sense to me. I think the noodling will be in how to expose it. flutter ide_info sounds very task specific, so I'm wondering if we can generalize it. flutter doctor would be nice in that it's already returning system config info. But I think assume general doctor command isn't going to want to execute gradle (as that would likely slow it down)?
Some options would be:

flutter doctor --machine - emits info as json; if this includes the gradle info, doctor gets slow
flutter doctor --gradle-info - would just run and return the gradle part
flutter doctor --android-info - perhaps more general than the above
flutter doctor --machine --all - runs checks we normally wouldn't (like the gradle ones), and emits to stdout in json

I think I'm leaning towards the last option; thoughts?

We discussed this offline and I'm going to go with adding a new API call in "flutter daemon" for now.

Getting error. Can't find the    main = 'com.squareup.wire.WireCompiler'. Can anybody elaborate on this?

@skybrian

Studio 3.0, which is still in alpha. Upgrading Gradle to 4.0

this both has happened.
Is there still something to do?

I don't know, but the bug this was originally for (flutter/flutter-intellij#966) was closed.

I'm closing then. Just add a comment to have it reopened if it turns out not to be solved.


Note to Contributors

Not really an issue, but making a note here to correspond to a similar one in the SAMD51-Camera-Demo repository.
I’m making an effort at unifying at least three different attempts/implementations at OV7670 camera code, and require use of this repository name as our canonical location for this unified code, so it makes sense and is easily found, and also for the Arduino Library Manager. THEREFORE:

The code that was previously here has been moved into a branch called “old,” so it’s still around for use or reference.
A completely new pile of code has been placed in the main branch. This code had previously been in the “pb-experiments” branch of another repo, SAMD51-Camera-Demo. This new code is a work in progress and doesn’t currently function, but this is where it’s gonna go, the pieces are there.
Once the code here is intact and a little more documented and hopefully even working, that other branch and repo (SAMD51-Camera-Demo) will be deleted, as the corresponding functionality has all been incorporated into the new code. Adafruit_OV7670 (main branch) will then be the canonical location for this project.

Just so y’know.

OK, this repo is The Real Deal now, live in Arduino Library Manager and so forth, closing issue.


chore: refactor pattern to support backslash in authenticationSecretArnParam

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license
Summary
refactor pattern to support backslash in authenticationSecretArnParam
Implementation highlights
(describe how the merge request does for feature changes, share the RFC link if it has)
Test checklist

[ ] add new test cases
[x] all code changes are covered by unit tests
[ ] end-to-end tests

[ ] deploy web console with CloudFront + S3 + API gateway
[ ] deploy web console within VPC
[ ] deploy ingestion server

[ ] with MSK sink
[ ] with KDS sink
[ ] with S3 sink

[ ] deploy data processing
[ ] deploy data modeling

[ ] new Redshift Serverless
[ ] provisioned Redshift
[ ] Athena

[ ] deploy with reporting
[ ] streaming ingestion

[ ] with Redshift Serverless
[ ] with provisioned Redshift

Is it a breaking change

[ ] add parameters without default value in stack
[ ] introduce new service permission in stack
[ ] introduce new top level stack module

Miscellaneous

[ ] introduce new symbol link source file(s) to be shared among infra code, web console frontend, and web console backend

SonarQube Quality Gate Result

Result: :white_check_mark: OK
Triggered by @dengmingtong on pull_request

Metric
Status
Value
Error Threshold

Reliability rating
:white_check_mark: OK
1
> 1

Security rating
:white_check_mark: OK
1
> 1

Sqale rating
:white_check_mark: OK
1
> 1

Coverage
:white_check_mark: OK
83.60
< 80

Duplicated lines density
:white_check_mark: OK
5.20
> 30

Blocker violations
:white_check_mark: OK
0
> 0

Bugs
:white_check_mark: OK
0
> 0

Code smells
:white_check_mark: OK
8
> 40

Critical violations
:white_check_mark: OK
0
> 0

Major violations
:white_check_mark: OK
0
> 0

Vulnerabilities
:white_check_mark: OK
0
> 0

View on SonarQube
updated: 5/15/2024, 10:00:36 (UTC+0)

SonarQube Code Analytics
Quality Gate passed

Additional information
The following metrics might not affect the Quality Gate status but improving them will improve your project code quality.
Issues
 0 Bugs
 0 Vulnerabilities
 0 Code Smells
Coverage and Duplications
No data Coverage
No data Duplication


Make reshape (and shape constructor) take any container

E.g. when I want to reshape an xtensor with a shape from an xarray, it doesn't work.

That is right. This is the expected behavior as of now. reshape takes the shape_type.

You can use the forward_shape function to convert the shape (that will make a copy, though).

I mean I understand that I can work around it, but don't you think that (at least for reshape) it would be nice to be able to use the shape of an xarray for an xtensor and vice versa?

I don't disagree. I just meant that it was not a bug! :)
I guess that overloading with a universal reference and forwarding the shape with forward_sequence could do the job.

Fixed in #294.


Can you use Windows 10 to generate the Image for Windows Server 2012 R2

Hi,
Just wondering can you use Windows 10 as the host to generate the Image for Windows Server 2012 R2. Also With the Windows ADK installation, does it matter the install location where you put the program?
This is the location of where I installed Windows ADK, as my C drive is running out of space :smile:

not sure about generating server 2012r2 from windows 10, but if you are using windows 10 as the host you shouldn't need the development kit for dism (not sure if that's the piece you were after) as windows 10 has it by default. - https://technet.microsoft.com/en-us/library/hh825010.aspx -
Install the Windows Assessment and Deployment Kit (Optional)
The DISM PowerShell module is included in Windows 8.1 and Windows Server 2012 R2. On other supported operating systems, you can install the Windows Assessment and Deployment Kit (Windows ADK) which includes the DISM PowerShell module. For more information, see Installing the Windows ADK.

Windows ADK for windows 10 is here https://blogs.technet.microsoft.com/yongrhee/2015/08/11/download-windows-10-assessment-and-deployment-kit-adk/

closing issue, as it the requirements have been added to the readme page.


Demo test update + Docker file creation for Hop App

Jenkins job istio/presubmit passed

PTAL

Jenkins job istio/presubmit passed

Jenkins job istio/presubmit passed


  and other escape sequences are saved incorrectly when using XHTML mode

1. Description
[TestMethod]
public void OptionOutputAsXmlBugTest()
{
    string html = @"Start| |<|>|&|€|£|"|'|End";
    HtmlDocument htmlDocument = new HtmlDocument
        {
            OptionOutputAsXml = true,
        };
    htmlDocument.LoadHtml(html);
    StringWriter stringWriter = new StringWriter(new StringBuilder(html.Length + 1000), CultureInfo.InvariantCulture);
    htmlDocument.Save(stringWriter);
    Assert.AreEqual("<?xml version=\"1.0\" encoding=\"utf-8\"?>Start| |<|>|&|€|£|"|'|End", stringWriter.ToString());
    //           Actual: <?xml version="1.0" encoding="utf-8"?>Start|&nbsp;|<|>|&|&euro;|&pound;|"|&apos;|End
}

As you can see   is saved as &nbsp;. Same goes for other HTML escape sequences, but not all 🤪

HAP version: 1.11.42
NET version: .NET 6.0.1

Hello @Mertsch ,
This is expected since this is how a &nbsp is escaped in XML: https://www.freeformatter.com/xml-escape.html
There is indeed some change possible that we could do as discussed here: https://github.com/zzzprojects/html-agility-pack/issues/456 but if we talk purely XML, that is the right behavior.
Best Regards,
Jon

Sponsorship
Help us improve this library
Performance Libraries
context.BulkInsert(list, options => options.BatchSize = 1000);
Entity Framework Extensions • Bulk Operations •  Dapper Plus
Runtime Evaluation
Eval.Execute("x + y", new {x = 1, y = 2}); // return 3
C# Eval Function • SQL Eval Function

Hello @JonathanMagnan Thank you very much for your explanation and time.
I do understand now, that HTML & characters need to be escaped for XML. But as your link suggests shouldn't the the output be
Start|&nbsp;|&lt;|&gt;|&amp;|&euro;|&pound;|&quot;|&apos;|End
by &ing every & in the text?!
The linked issue #456 I do not fully understand. It seems there is the "backwards compatible" flag which specifically keeps &nbsp, but if it's about XML escaping ... why only some &s?

Hello @Mertsch ,
My bad, I just saw the part about the &nbsp of your initial post.
That OptionOutputAsXml is currently very confusing. I will look at it more deeply.
Best Regards,
Jon

I do not have this trouble, if I use HtmlDocument.BackwardCompatibility = false.

I have chosen to go with https://github.com/AngleSharp/AngleSharp and this issue is no longer relevant to me. If you want to close it, feel free to do so.

Hello @Mertsch ,
We will close this issue in this case. AngleSharp is a great library, so surely I understand your choice.
Best Regards,
Jon


[Bug]: Resource manager edit filename textbox doesn't allow certain keystrokes

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
When editing a filename, the textbox used to edit the name does not allow backspace or arrow keys making editing the name quite frustrating. I expect to be able to arrow over in the name and/or use the back space key to edit.
Steps to reproduce?

Go to resource manager
Right click on a file or select a file and click edit in the toolbar
Try using backspace or arrow keys in the filename textbox

Current Behavior
When editing a filename, the textbox used to edit the name does not allow backspace or arrow keys.
Expected Behavior
I expect to be able to arrow over in the name and/or use the back space key to edit.
Relevant log output
None

Anything else?
I am using DNN 9.12.0, Resource Manager 9.12.0
Affected Versions
9.13.2 (latest release)
What browsers are you seeing the problem on?
Chrome
Code of Conduct

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

@sawest it is working fine for me, is that on one specific site or you can make it happen on a clean new site ?
Also if you open the browser devtools (F12) do you have any console errors in there ?

Sorry! It appears that backspace DOES work but the arrow keys do not. You cannot arrow over anywhere to delete or backspace. No errors in DevTools.

Very odd, works for me, can anyone else make it happen too? Also, did you upgrade to 9.13.2 ?

I haven't upgraded yet but the problem persisted through my last upgrade. I believe from 9.11 to 9.12. I will be upgrading in the upcoming months. I can report back after that.