Refactor/34411 lhn previews followup name for group chat

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/34411
PROPOSAL: https://github.com/Expensify/App/issues/34411#issue-2078336007
Tests

Log in on two user accounts on different platforms or different browsers (or browser profiles).
As User A start a group chat with User B and User C, send a message.
Verify that your name is not displayed in the LHN preview.
Open the Search Page, search for the chat (if it's not displayed at the top).
Verify that your name is not displayed in the list item preview.
As User B send a message in this chat.
As User A after receiving the message: verify that User B's name is displayed in the LHN preview.
Open the Search Page, search for the chat (if it's not displayed at the top).
Verify that User B's name is displayed in the list item preview.
Look through the other chat previews if there's no additional lastActorName with a colon before the message.

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

Offline tests

You can verify steps 1.-4.
QA Steps

Log in on two user accounts on different platforms or different browsers (or browser profiles).
As User A start a group chat with User B and User C, send a message.
Verify that your name is not displayed in the LHN preview.
Open the Search Page, search for the chat (if it's not displayed at the top).
Verify that your name is not displayed in the list item preview.
As User B send a message in this chat.
As User A after receiving the message: verify that User B's name is displayed in the LHN preview.
Open the Search Page, search for the chat (if it's not displayed at the top).
Verify that User B's name is displayed in the list item preview.
Look through the other chat previews if there's no additional lastActorName with colon before the message.

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

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
[ ] I added steps for the expected offline behavior in the Offline steps section
[ ] I added steps for Staging and/or Production testing in the QA steps section
[ ] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] 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)
[ ] 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).

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

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

[ ] 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)
[ ] I followed proper code patterns (see Reviewing the code)

[ ] 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)
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] 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.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[ ] 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:

[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] 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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] 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.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I followed the guidelines as stated in the Review Guidelines
[ ] 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)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] 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
[ ] I verified that if a function's arguments changed that all usages have also been updated correctly
[ ] If any new file was added I verified that:

[ ] 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

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

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

[ ] 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.
[ ] 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)
[ ] 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.
[ ] 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.
[ ] If the PR modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label so the design team can review the changes.

[ ] 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.
[ ] 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

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@mountiny while I was fixing the issue I've noticed one strange thing - I used the isGroupChat function and it worked for >3 participants (including me) but not for 3. I've found out that we're checking now if the participantAccountIDs array is longer than two, which doesn't make sense bc in this array there's no currentUserID, we have only the ids for the other users.
Is there a chance that I might be wrong and we have cases that the currentUserID is in participantAccountIDs array? I.e. for the chats migrated from the OD?
I changed it to check for more than 1 and now it works.
Before my changes, this function was used in two locations and for the same purpose - to get the report's name either with getGroupChatName method or getReportName. For 3 participants (owner + 2 other users) isGroupChat was false

but the title was still created properly thanks to this logic in getReportName https://github.com/Expensify/App/blob/79ce04945c6ea3c5a3b63533da34a6158784a7a5/src/libs/ReportUtils.ts#L2553-L2557. After changing the condition in isGroupChat the title is created the same way but with getGroupChatName. So it should not introduce any regressions.
If we really don't have any case of currentUserID in the participantAccountIDs I think we can also get rid of this filtering here: https://github.com/Expensify/App/blob/79ce04945c6ea3c5a3b63533da34a6158784a7a5/src/libs/ReportUtils.ts#L2554 and checking for participants here https://github.com/Expensify/App/blob/7fd529b9ea04487cabaf9d522ae4947496265b92/src/libs/GroupChatUtils.ts#L10 seems to be redundant, as we always check if there is more participants before we even call this function. I haven't changed it yet- I wanted to ask you first 🙂

@koko57 thank you very much for raising this.
I believe we went a bit back and forth potentially on if the "owner" or the currentUserID is part of the participants list.
I believe we are going to update how the group chats work, we will be able to identify it much easier:
The Group chat will be identifiable by it’s rNVP type = 'chat’ and rNVP chatType = ‘group’

I think you can update the check to see if there is 1> participants

@mountiny thanks! Opening it ready for review then 🙂

@mananjadhav what is your ETA for this one?

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)

[ ] 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 approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[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

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] 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)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] 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
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] 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)
[ ] 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)
[ ] All JSX used for rendering exists in the render method
[ ] 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

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

[ ] 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

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

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

[ ] 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.
[ ] 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)
[ ] 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.
[ ] 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.
[ ] If the PR modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label so the design team can review the changes.

[ ] 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.
[ ] 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.
[ ] 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

Picking this now.

I forgot what's our stance on display name not set. The name prefix will only show if the display name is set right?

: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/mountiny in version: 1.4.47-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
failure ❌

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 1.4.47-10 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Make probes use https with Scope Service

The Scope Service now supports https. Thus, the probes should use https instead of http. AFAIU this can be done simply by reverting https://github.com/weaveworks/scope/commit/d57d4aa53ac18fae7477dc8bb1b3372d8fe087ae
While we are at it, it would be good to avoid implicitly including scope.weave.works in the probe's targets when --service-token is provided.
For instance, contrary to what the user expects the command scope launch --service-token=foo my.own.scope.service.com:80  will try to send reports to both my.own.scope.service.com:80 and scope.weave.works:80.

I've found that I don't get anything sent to the 2nd host. (or maybe nothing sent at all, I'm not sure if stuff is going to scope.weave.works). E.g. Running locally like this:
 2632 root       0:00 /home/weave/scope probe -docker=true -token=9s95dcemze1ztbigthubtay9mwxaniws scope.weave.works:80 frontend.dev.weave.works:80
In the scope service dev UI:

No new "(connected)" probe in "Configure your app"
Nothing to show in scope topo view.

Changing docker/entrypoint.sh as described in weaveworks/service#275 so that frontend.dev.weave.works is the only entry works and I get probes in the dev service UI!

I don't see how that's related to this ticket. If it happens in master (and
from your comment I believe it does), it deserves a ticket of its own.
Related to #698 and #630
On Tuesday, December 29, 2015, Simon<EMAIL_ADDRESS>wrote:

I've found that I don't get anything sent to the 2nd host. (or maybe
nothing sent at all, I'm not sure if stuff is going to scope.weave.works).
E.g. Running locally like this:
2632 root 0:00 /home/weave/scope probe -docker=true
-token=9s95dcemze1ztbigthubtay9mwxaniws scope.weave.works:80
frontend.dev.weave.works:80
In the scope service dev UI:

No new "(connected)" probe in "Configure your app"
Nothing to show in scope topo view.

Changing docker/entrypoint.sh as described in weaveworks/service#275
https://github.com/weaveworks/service/pull/275 so that
frontend.dev.weave.works is the only entry works and I get probes in the
dev service UI!
—
Reply to this email directly or view it on GitHub
https://github.com/weaveworks/scope/issues/777#issuecomment-167760134.


Add support for clearing relationships

If you sent a request, trying to clear a relationship (remove the relationship) by sending "relationshipname" : { "data": null}" yin ignored this, behaving exactly like it did when the relationship was completely omitted.
The hydrator for the relationship was not called and calls to $jsonApi->getRequest()->getResourceToOneRelationship('relationshipname') behaved just as if no relationship was sent.
This patch intends to change that by handling the null-case and creating empty ToOneRelationships where appropriate.
A request for clarification of this behavior has been made to the folks over at jsonapi, here: https://github.com/json-api/json-api/issues/1070

You did a great job with your PR and I couldn't find anything which needs fixing (apart from some really minor formatting things)! :) I'll gladly take care of updating the documentation, change log and tests this evening, but I won't stop you here if you want to do them.
And I think the best thing would be to throw exceptions when either the type or the id field is missing from the resource identifier object, because the specs explicitly declares that they are required: http://jsonapi.org/format/#document-resource-identifier-objects For this purpose a new ResourceIdentifierTypeMissing and a ResourceIdentifierIdMissing exception could be used via the ExceptionFactory. If you also think that this is the best solution I will make this change too.
Furthermore, I noticed one thing I don't like: it is the names of the getResourceToOneRelationship() and getResourceToManyRelationship() methods. They are really awkward and I can't remember why I named them like that. :) But what would you think if I renamed them to getToOneRelationship() and getToManyRelationship()? And maybe the JSON API specific functionality should be separated from the generic RequestInterface to a JSON API specific class. And probably one could access them the following way:
$authors = $jsonApi->getRequest()->getJsonApi()->getToOneRelationship("authors");

But this is really long a line :S But if you have a good solution, feel free to tell me :)

+1 on the exception suggestion and the renaming. :) The exception thing shouldn't be a breaking change, i think, but the renaming of the methods are.


debug fails when adding breakpoint

When i run the debug configuration, it runs the go program fine:
Starting delve with config "Debug"
API server listening at: <IP_ADDRESS>:2345
Started delve with config "Debug"
hello
5 a
delve closed with code 0
After i add a breakpoint, i get the following:
Starting delve with config "Debug"
API server listening at: <IP_ADDRESS>:2345
Started delve with config "Debug"
Adding breakpoint @ gosrc\hi.go:8
Added breakpoint @ gosrc\hi.go:8
Failed to start delve with config "Debug"
Error: Access is denied.
delve closed with code 0

This sounds like a problem with delve itself not go-debug...
Please try to debug your code in the terminal/cmd by using dlv debug

Closing due to inactivity.
Try updating delve using go get -u github.com/derekparker/delve/cmd/dlv.
Feel free to open an issue at github.com/derekparker/delve/issues


Modify to load as a MiSTer core?

Would anyone that has the knowhow be interested in converting this to be a core for MiSTer?  It runs on the DE10-Nano and provides HDMI output and USB keyboard input.  There is already an Apple II+ core.

PRs happily accepted. 😃
Shouldn't be too difficult, but I haven't got the time myself.

Man, found on the Atari Forum someone has "merged" this core into their project and made a mess of the structure and dumped all the files into a random directory. :( Will make keeping that up to date hard.

Was it this one?  That is for MiST, which is pretty close to MiSTer.  I am hoping this will make it even easier to port to MiSTer (I do not have a MiST FPGA).
On a related note, I have been converting cassette save files back to the original BASIC code here.  I was envisioning using the On Screen Display to load text files as if they were being typed on the keyboard.

I started with the MiST version, so unfortunately the directories are all wrong:
https://github.com/MiSTer-devel/Apple-I_MiSTer
I added some code to load code from text files. It isn't fully working yet. I need to fix it.

Hi,
I'd appreciate it if the MiST project could get the Apple One code back inline with this repo. Dumping all the RTL into a single directory is kinda poor and doesn't allow any modifications to trickle back to this project.
While I understand the excitement in adding it to MiST my work appears to have been misrepresented.
Thanks,
-A.

Let me see if I can pull it back together to look more like yours. In general the code goes into https://github.com/miSTer-devel/ as it's own repo. There are very few (if any?) forks in the main repo. The naming convention of some of the directories are important for the scripts to auto upgrade cores from the RBF files.  Do you have a MiSTer yet? Are you interested in getting one?

Take another look. https://github.com/MiSTer-devel/Apple-I_MiSTer
I can pull in the rest of your files. We can merge my changes back into your head, and then I can check out a fork of yours maybe? I think I just need the "releases" folder in the top level so the scripts will find it.


Wrapped title of the card and commented out unavailable description field(#23tvyuz)

Related Issues

Closes #
Short Description and Why It's Useful

Screenshots of Visual Changes before/after (If There Are Any)

IMPORTANT NOTICE - Remember to add changelog entry
Contribution and Currently Important Rules Acceptance

[ ] I read and followed contribution rules


Baseline MAINTAINERS, CODEOWNERS, and external collaborator permissions

Follow https://github.com/opensearch-project/.github/issues/125 to baseline MAINTAINERS, CODEOWNERS, and external collaborator permissions.
Close this issue when:

MAINTAINERS.md has the correct list of project maintainers.
CODEOWNERS exists and has the correct list of aliases.
Repo permissions only contain individual aliases as collaborators with maintain rights, admin, and triage teams.
All other teams are removed from repo permissions.

If this repo's permissions was already baselined, please confirm the above when closing this issue.

Verified permissions

.

Closed via https://github.com/opensearch-project/perftop/pull/70.


"Ambiguous without more context" using parameter packs and key-paths

The following code produces Type of expression is ambiguous without more context
func configure<T, each Element>(
  _ item: T,
  with configuration: repeat (ReferenceWritableKeyPath<T, each Element>, each Element)
) -> T {
  repeat item[keyPath: (each configuration).0] = (each configuration).1 // error: Type of expression is ambiguous without more context
  return item
}

This should compile successfully.

Tested with 23e2f345b51.


misc/reboot: TestRepeatBootstrap timing out on plan9/arm builders

CL 167478 added TestRepeatBootstrap. However, this test is timing out on the plan9/arm builders.
Test "reboot" ran over 20m0s limit (20m0.10206808s)

See https://build.golang.org/log/e1f275307bdb1e65176d7c71a95813150227a2e3

TestRepeatBootstrap takes 17 minutes on the plan9/arm builder.
cpu% time go test -v -timeout 30m
=== RUN   TestRepeatBootstrap
Building Go cmd/dist using /usr/go
Building Go toolchain1 using /usr/go.

Building Go toolchain2 using go_bootstrap and Go toolchain1.
Building Go toolchain3 using go_bootstrap and Go toolchain2.
Building packages and commands for plan9/arm.
---
Installed Go for plan9/arm in /tmp/reboot-goroot073208412
Installed commands in /tmp/reboot-goroot073208412/bin
*** You need to bind /tmp/reboot-goroot073208412/bin before /bin.
--- PASS: TestRepeatBootstrap (1061.44s)
PASS
ok  	misc/reboot	1061.949s


[QBO] - Fix: Chart of accounts page does not fit in RHP properly

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/41754
PROPOSAL: https://github.com/Expensify/App/issues/41754#issuecomment-2098603248
Tests
To reach page via custom navigation on Dev:
Replace this line with:
action: singleExecution(waitForNavigate(() => Navigation.navigate(ROUTES.POLICY_ACCOUNTING_QUICKBOOKS_ONLINE_CHART_OF_ACCOUNTS.getRoute(policyID)))),

Then:

Go to Account Settings > Workspaces
Choose a workspace
Click on Profile

Offline tests

Go to Expensify
Go to workspace chat
Go to Accounting
Connect to QBO
Click Import
Click Chart of accounts
Verify the page fits properly.

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

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

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

I don't think we need this PR. The fix was added in https://github.com/Expensify/App/issues/41754#issuecomment-2099207160 and we should ideally merge that one.


Time to ship

Let's ship a beta! What do we still have to do before then?

[x] Finish cast controls (#148)
[x] Open .torrent files and magnet links (#77)
[x] Prevent multiple copies of WebTorrent from running simultaneously (#167)
[x] Nicer error messages. No more alert()s, show a red bar or popover
[x] Save torrent data in state.saved (#169)
[x] Make sure already downloaded files can play even when we're offline
[ ] Website

What else?

'Run in background mode' for consistent seeding/downloading while the OS is running: https://github.com/feross/webtorrent-app/issues/150

I feel like we're getting close to a beta release too. I'll be working on the preferences window tomorrow, plan to finish before the weekend is over.

@dcposch Your list looks good to me.

We need to set WebTorrent to open .torrent files and magnet links on all OSs. #77 Will add to the launch checklist.

We should test with network connection off. In the last build I tried torrents that were fully downloaded would never load into the app, probably because the webtorrent client is waiting to get metadata from the infohash first.

@ungoldman Yep. That should be fixed by saving the torrent.torrentFile in state.saved instead of just the torrent.infoHash.
Prefs dialog would be great to have, but it's not a launch blocker – removed it from the list.
And, now that the Windows app supports opening magnet links, #167 has become very important. Added it to the list.

Woot – looks like all that's left is a website? Can that really be it?!!

https://github.com/feross/webtorrent-www/pull/47

aw damn really? I literally just finished http://ungoldman.github.io/webtorrent-app-www/. lol.

Source is here if it's at all useful. https://github.com/ungoldman/webtorrent-app-www/

@ungoldman I really like this one. Perhaps we can combine this version with the download buttons on @dcposch's version? That way there's installation options for both basic & advanced users.

I'll try integrating some of what I did into @dcposch's work on webtorrent-www.

So https://github.com/ungoldman/webtorrent-app-www/ is literally just converting all the markdown files in this repo into html pages using webtorrent-www's style as a layout. I think @dcposch's page is a better way to present the information on the site though we may want to explore including more info or documentation on the site later.
I've opened a PR (feross/webtorrent-www#48) building on @dcposch's work from yesterday.

@ungoldman Nice, I like your changes.

Sweet: https://webtorrent.io/desktop


Integrate ApiView check with C++ CI pipelines

It would be great if ApiView integration was available for C++ SDK.

cc @praveenkuttappan

I have the Powershell script that makes a command line:
#Usage: ApiViewCommandLine.ps1 .\azure-sdk-for-cpp azure-identity
#Or: ..\ApiViewCommandLine.ps1 . azure-core
#Or: ApiViewCommandLine.ps1 ..\.. azure-security-attestation
#Or: C:\src\ApiViewCommandLine.ps1 c:\src\azure-sdk-for-cpp azure-identity
param($RepoPath, $LibName)

[String]$SdkRoot = Resolve-Path ($RepoPath + "\sdk")

[String[]]$AllIncDirs = Get-ChildItem -Directory -Filter "inc" -Recurse $SdkRoot | Select-Object -ExpandProperty FullName

[String[]]$AllIncDirsWithoutInc = $AllIncDirs | Select-Object @{ Label="Substr"; Expression = { $_.Substring(0, $_.Length - "inc".Length) } } | Select-Object -ExpandProperty Substr

[String[]]$AllLibIncDirs = @()
for($i = 0; $i -lt $AllIncDirsWithoutInc.Length; $i++) {
    $isLibDir = $true
    $libDir = $AllIncDirsWithoutInc[$i]
    for($j = 0; $j -lt $AllIncDirsWithoutInc.Length; $j++) {
        if ($i -eq $j) {
            continue
        }

        $StartsWith = $AllIncDirsWithoutInc[$j] + "*"
        if ($libDir -Like $StartsWith) {
            $isLibDir = $false
            break
        }
    }

    if ($isLibDir){
        $AllLibIncDirs += $libDir + "inc"
    }
}

[String]$LibIncDir = $AllLibIncDirs | Where-Object {$_ -Match ("\\" + $LibName + "\\inc") } | Select-Object -First 1

[String[]]$LibHeaders = Get-ChildItem -File -Recurse $LibIncDir | Select-Object -ExpandProperty FullName

$CmdLine = "clang++"
foreach ($header in $LibHeaders) {
    $CmdLine += " " + $header
}

$CmdLine += " -Xclang -ast-dump"

foreach ($incDir in $AllLibIncDirs) {
    $CmdLine += " -I " + $incDir
}

$CmdLine

You give it the path to azure-sdk-for-cpp repo, and a library name, such as azure-core, azure-identity, etc.
It generates the command line with all the header files for the given library - which is good because even if people forget to add some directory to the all-include file, the entities from it will still be present.
And it lists all the include directories for all libraries, which makes it a bit longer to run, but it is harmless - the stuff that was referenced stil ends up not being included in review. As example, I generated APIview for azure-identity which only depends on core. But I fed it all the include directories for all libraries, including, for example, Storage. But in the resulting AST tree, and in ApiView, no entity from Storage was ever listed. Which is great, because we don't have to implement the logic that figures out the dependencies, we simply list all the libraries and let clang++ to take care of including only the relevant ones.

Resolved by #3763


[Issue 5415][docker build]Updating docker build for pulsar-standalone to use main dashboard sou…

This resolves issue #5415 but it does more than just that. It cleans up the build process for the pulsar-standalone Docker image to eliminate the need for a second copy of the dashboard files in the repo (which had already diverged significantly).
I made the following changes:

Changed the docker build to use the dashboard files in the dashboard Docker image instead of a copy of those files that were in the build directory (docker/pulsar-standalone). That copy was very out of date with the master version (dashboard). The copy of the dashboard files also had a bug that was the cause of issue #5415.

I changed the build order so that the dashboard image is built before the pulsar-standalone image since the pulsar-standalone image now depends on the dashboard image. (This is pattern is used for the pulsar-all Docker image already).

I merged the changes from the dashboard copy and master. As it turns out all but one of the changes in the copy had already been made in the master, so this was a small change. However, it does mean the dashboard is now using v2 REST endpoints exclusively. Previously it was using a mixture of v1 and v2.

I updated the pulsar-standalone image to redirect all the pulsar logs to stdout, which means they can be viewed using docker logs (and they won't fill up the volume), which is the "docker way" to do things. The logging options for the other components (nginx, collector, etc) are inherited from the dashboard image, which got to supervisor log files but are configured to not fill up the volume.

I deleted the duplicate conf and python files for the dashboard. All the files are single-sourced from the repo dashboard path. Since Docker doesn't let you reference files outside the Dockerfile path, the files are pulled from the latest dashboard image, which I've already mentioned.

I have done many builds of the Docker images with these changes. I have confirmed:

the build completes successfully by running the build.sh command. (Full disclosure: I skipped the building of Pulsar clients and adding them to the main pulsar image to speed up my testing.)
pulsar starts correctly in a pulsar-standalone container
the dashboard works in a pulsar-standalone container
the pulsar standalone logs display properly with the docker logs command on a running container

run java8 tests


[New game] [Egg Catch Game]:

🎮 Game Request
Game logic and basic description
Eggs Catcher is a classic game where the goal is to catch as many eggs as possible. In this game, every egg you catch will increase your score and if you miss 5 eggs you will lose the game.
Point down the features
Game points
Good GUI
Record your Score
Lives

Select program in which you are contributing
No response
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @JadavShraddha !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

/assign

please check this

Hello @JadavShraddha, Time's Uppp!⏰
Sorry for closing your issue!
But it's more than a week since we haven't received anything from your side 😢 .
Come up with new ideas, create a new issue and make sure you finish it within a week! 🔥
All the best! 🚀
Happy Hacking! 💗

Hey @JadavShraddha ! Thank you so much for your raising the issue💗
It’s all yours, you can come anytime again and make some contributions! 🚀
Alone, we can do little, but together we can do so much! 😇


$iErr = $_WD_ERROR_Exception and re-ordering $WD_ERROR*

Feature request
Is your feature request related to a problem?
there is many places where UDF uses such template:
	If $iErr = $_WD_ERROR_Success Then
		.....
	Else
		$iErr = $_WD_ERROR_Exception
	EndIf
	Return SetError(__WD_Error($sFuncName, $iErr), 0, $sValue)
EndFunc

IMO this is wrong,
At least this enums should be passed to the main script
$_WD_ERROR_SocketError
$_WD_ERROR_SendRecv
$_WD_ERROR_SessionInvalid
$_WD_ERROR_ContextInvalid

IMO they are main/general errors which can occrus when webdriver, browser, session is closed, and in such case reporting just: $_WD_ERROR_Exception is a big a misunderstanding/mistake/oversight, even if they came from some internal processing.
Describe the solution you'd like
we should reorder $WD_ERROR* to have possiiblity to use code like this:
	If $iErr = $_WD_ERROR_Success Then
		.....
	Else
		$iErr = $_WD_ERROR_Exception
	EndIf
	Return SetError(__WD_Error($sFuncName, $iErr), 0, $sValue)
EndFunc

for example:
Global Enum _
		$_WD_ERROR_Success = 0, _ ; No error
		$_WD_ERROR_GeneralError, _ ; General error
		$_WD_ERROR_NotSupported, _ ; When user try to use unsupported browser or capability
		$_WD_ERROR_AlreadyDefined, _ ; Capability previously defined
		$_WD_ERROR_SocketError, _ ; No socket
		$_WD_ERROR_SendRecv, _ ; Send / Recv Error
		$_WD_ERROR_SessionNotCreated, _ ; Session not created
		$_WD_ERROR_ContextInvalid, _ ; Invalid browsing context
		$_WD_ERROR_SessionInvalid, _ ; Invalid session ID was submitted to webdriver
		$_WD_ERROR_UserAbort, _ ; In case when user abort when @error occurs and $_WD_ERROR_MSGBOX was set
		$_WD_ERROR_Exception, _ ; Exception from web driver
		$_WD_ERROR_InvalidDataType, _ ; Invalid data type (IP, URL, Port ...)
		$_WD_ERROR_InvalidValue, _ ; Invalid value in function-call
		$_WD_ERROR_InvalidArgue, _ ; Invalid argument in function-call
		$_WD_ERROR_Timeout, _ ; Connection / Send / Recv timeout
		$_WD_ERROR_NoMatch, _ ; No match for _WDAction-find/search _WDGetElement...
		$_WD_ERROR_NoAlert, _ ; No alert present when calling _WD_Alert
		$_WD_ERROR_NotFound, _ ; File or registry key not found
		$_WD_ERROR_RetValue, _ ; Error echo from Repl e.g. _WDAction("fullscreen","true") <> "true"
		$_WD_ERROR_InvalidExpression, _ ; Invalid expression in XPath query, CSSSelector query or RegEx
		$_WD_ERROR_ElementIssue, _ ; Problem interacting with element (click intercepted, etc)
		$_WD_ERROR_UnknownCommand, _ ; Unknown command submitted to webdriver
		$_WD_ERROR_FileIssue, _ ; Errors related to WebDriver EXE File
		$_WD_ERROR_Javascript, _ ; Javascript error
		$_WD_ERROR__COUNTER ; Defines row count for $aWD_ERROR_DESC

in such cases we can use:
	If $iErr = $_WD_ERROR_Success Then
		.....
	ElseIf $iErr > $_WD_ERROR_Exception Then
		$iErr = $_WD_ERROR_Exception
	EndIf
	Return SetError(__WD_Error($sFuncName, $iErr), 0, $sValue)
EndFunc

Describe alternatives you've considered
we can create separate internal function which will check desired cases and set $iErr accordingly.
Additional context
none

I also propose to add new  $_WD_ERROR_InternalProcessing which I would like to use for some complex function like: _WD_FrameList and _WD_LocateElement
Global Enum _
		$_WD_ERROR_Success = 0, _ ; No error
		$_WD_ERROR_GeneralError, _ ; General error
		$_WD_ERROR_NotSupported, _ ; When user try to use unsupported browser or capability
		$_WD_ERROR_AlreadyDefined, _ ; Capability previously defined
		$_WD_ERROR_SocketError, _ ; No socket
		$_WD_ERROR_SendRecv, _ ; Send / Recv Error
		$_WD_ERROR_SessionNotCreated, _ ; Session not created
		$_WD_ERROR_ContextInvalid, _ ; Invalid browsing context
		$_WD_ERROR_SessionInvalid, _ ; Invalid session ID was submitted to webdriver
		$_WD_ERROR_UserAbort, _ ; In case when user abort when @error occurs and $_WD_ERROR_MSGBOX was set
		$_WD_ERROR_Exception, _ ; Exception from web driver
		$_WD_ERROR_InternalProcessing, _ ; The error comes from Internal processing
		$_WD_ERROR_InvalidDataType, _ ; Invalid data type (IP, URL, Port ...)
		$_WD_ERROR_InvalidValue, _ ; Invalid value in function-call
		$_WD_ERROR_InvalidArgue, _ ; Invalid argument in function-call
		$_WD_ERROR_Timeout, _ ; Connection / Send / Recv timeout
		$_WD_ERROR_NoMatch, _ ; No match for _WDAction-find/search _WDGetElement...
		$_WD_ERROR_NoAlert, _ ; No alert present when calling _WD_Alert
		$_WD_ERROR_NotFound, _ ; File or registry key not found
		$_WD_ERROR_RetValue, _ ; Error echo from Repl e.g. _WDAction("fullscreen","true") <> "true"
		$_WD_ERROR_InvalidExpression, _ ; Invalid expression in XPath query, CSSSelector query or RegEx
		$_WD_ERROR_ElementIssue, _ ; Problem interacting with element (click intercepted, etc)
		$_WD_ERROR_UnknownCommand, _ ; Unknown command submitted to webdriver
		$_WD_ERROR_FileIssue, _ ; Errors related to WebDriver EXE File
		$_WD_ERROR_Javascript, _ ; Javascript error
		$_WD_ERROR__COUNTER ; Defines row count for $aWD_ERROR_DESC

we should reorder $WD_ERROR* to have possiiblity to use code like this:

The code you posted following this line is exactly the same as the code that you indicated is wrong. Please correct this to remove any confusion.

I also propose to add new $_WD_ERROR_InternalProcessing which I would like to use for some complex function like: _WD_FrameList and _WD_LocateElement

Can you elaborate on how you would use this in each of these functions? Please be specific.

I also propose to add new $_WD_ERROR_InternalProcessing which I would like to use for some complex function like: _WD_FrameList and _WD_LocateElement

Can you elaborate on how you would use this in each of these functions? Please be specific.

comment to enums says
$_WD_ERROR_Exception, _ ; Exception from web driver

and it should comes only from
__WD_Post/__WD_Delete/__WD_Get and specifically from __WD_DetectError
so focusing on _WD_FrameList  I would like to change:
	Local Const $sElement_CallingFrameBody = _WD_ExecuteScript($sSession, "return window.document.body;", Default, Default, $_WD_JSON_Element)
	If Not @error Then
		$vResult = __WD_FrameList_Internal($sSession, 'null', '', False, $_WD_DEBUG_Saved)
	EndIf
	#Region - post processing
	If @error Then
		$iErr = $_WD_ERROR_GeneralError
	Else

to:
	Local Const $sElement_CallingFrameBody = _WD_ExecuteScript($sSession, "return window.document.body;", Default, Default, $_WD_JSON_Element)
	If Not @error Then
		$vResult = __WD_FrameList_Internal($sSession, 'null', '', False, $_WD_DEBUG_Saved)
		$iErr = @error
	EndIf
	#Region - post processing
	If @error Then
		If $iErr > $_WD_ERROR_Exception Then
			$iErr = $_WD_ERROR_InternalProcessing
		Endif
	Else

comment to enums says
$_WD_ERROR_Exception, _ ; Exception from web driver

and it should comes only from __WD_Post/__WD_Delete/__WD_Get and specifically from __WD_DetectError

Comments are informational only. 😉 I would need to research before making decision on this.

so focusing on _WD_FrameList I would like to change to:
		If $iErr > $_WD_ERROR_Exception Then
			$iErr = $_WD_ERROR_InternalProcessing
		Endif

Sorry, but I'm having trouble making sense of this. These are the questions I have thus far --

What determines when a specific error code should come before / after $_WD_ERROR_Exception in the enum?
Why would you want to return $_WD_ERROR_InternalProcessing to the calling script?
Aren't you just substituting $_WD_ERROR_InternalProcessing for $_WD_ERROR_Exception as a way to return multiple error conditions under a single error code?

I initially envisioned that you wanted to use $_WD_ERROR_InternalProcessing as a way to pass errors from an internal function (ie: __WD_FrameList_Internal) to it's calling function (ie: __WD_FrameList), but that clearly isn't your intention here. 🤔

Ok we can forget about $_WD_ERROR_InternalProcessing
What about reordering, and passing all main errors ?

Please answer my earlier question --

What determines when a specific error code should come before / after $_WD_ERROR_Exception in the enum?

comment to enums says
$_WD_ERROR_Exception, _ ; Exception from web driver

and it should comes only from __WD_Post/__WD_Delete/__WD_Get and specifically from __WD_DetectError

Comments are informational only. 😉 I would need to research before making decision on this.

not only comments, this following part also says:
Global Const $aWD_ERROR_DESC[$_WD_ERROR__COUNTER] = [ _
...
		"Webdriver Exception", _
...

btw.
i did some test by modifying wd_demo.au3:
	ConsoleWrite("> wd_demo.au3: _WD_Startup" & @CRLF)
	Local $iWebDriver_PID = _WD_Startup()
	If _RunDemo_ErrorHander((@error <> $_WD_ERROR_Success), @error, @extended, $iWebDriver_PID, $sSession) Then Return

	ConsoleWrite("> wd_demo.au3: _WD_CreateSession" & @CRLF)
	MsgBox($MB_TOPMOST, "", ' BEFORE _WD_CreateSession - please close WebDriver Console window')
	$sSession = _WD_CreateSession($sCapabilities)
	MsgBox($MB_TOPMOST, "", ' AFTER _WD_CreateSession')
	Exit

my result was:
_WD_Startup ==> Success [0]
> wd_demo.au3: _WD_CreateSession
__WD_Post ==> Send / Recv error [6] : HTTP status = 0
_WD_CreateSession ==> Webdriver Exception [10]

and my question are:
What was a reason for _WD_CreateSession()  to change $_WD_ERROR_SendRecv >> $_WD_ERROR_Exception ?
Do any other function return $_WD_ERROR_SendRecv ?

What was a reason for _WD_CreateSession() to change $_WD_ERROR_SendRecv >> $_WD_ERROR_Exception ?

I think the idea was to limit the number of error codes that the calling routine would need to handle. Do you think a user script would need to distinguish between $_WD_ERROR_InvalidValue, $_WD_ERROR_SendRecv, $_WD_ERROR_SocketError, etc? If Yes, then please provide a detailed description of when this would be beneficial.

Do any other function return $_WD_ERROR_SendRecv ?

It's certainly possible if the function simply returns the error code coming from __WD_Get/Put/Delete without overriding it.

#firstly Capabilities must be created - this following @ERROR are related to creating capabilities
$_WD_ERROR_NotSupported, _ ; When user try to use unsupported browser or capability
$_WD_ERROR_AlreadyDefined, _ ; Capability previously defined

#then Session must be created - this following @ERROR are related to creating scession
$_WD_ERROR_SessionNotCreated, _ ; Session not created
$_WD_ERROR_FileIssue, _ ; Errors related to WebDriver EXE File

#this following @ERROR are related to communication issues between UDF and WebDriver
$_WD_ERROR_SocketError, _ ; No socket
$_WD_ERROR_SessionInvalid, _ ; Invalid session ID was submitted to webdriver
$_WD_ERROR_ContextInvalid, _ ; Invalid browsing context
$_WD_ERROR_UnknownCommand, _ ; Unknown command submitted to webdriver
$_WD_ERROR_Exception, _ ; Exception from web driver

#All other @ERROR are related in some way to USER actions or ENV

I think the idea was to limit the number of error codes that the calling routine would need to handle.

that's what I thought

Do you think a user script would need to distinguish between $_WD_ERROR_InvalidValue, $_WD_ERROR_SendRecv, $_WD_ERROR_SocketError, etc?

Yes.

If Yes, then please provide a detailed description of when this would be beneficial.

When user had already properly created connection, and all was working fine be first few minutes of proccessing then something happen and user get error $_WD_ERROR_Exception how he should check/know what the issue was ?

From a debugging perspective, I agree that having the correct error code is essential, and we already have that in the logs when the correct debugging level is set. My question was regarding user scripts and whether the script would benefit by having multiple error codes returned.
After calling _WD_FrameList, how would the user script respond differently if it received error $_WD_ERROR_SessionInvalid vs $_WD_ERROR_Exception?

I have few script that in case of errors are trying to repeat processsing, but as so far I never checks for the case if session is still valid, or if other connection issues occurs.
In other words, I have a filling that currently when you get  $_WD_ERROR_Exception, _ ; Exception from web driver this mean that you should check for any possible errors like:
$_WD_ERROR_SocketError, _ ; No socket
$_WD_ERROR_SessionInvalid, _ ; Invalid session ID was submitted to webdriver
$_WD_ERROR_ContextInvalid, _ ; Invalid browsing context
$_WD_ERROR_UnknownCommand, _ ; Unknown command submitted to webdriver

so after getting $_WD_ERROR_Exception you should call _WD_CheckContext to be sure what is going on.

after getting $_WD_ERROR_Exception you should call _WD_CheckContext to be sure what is going on.

Am I right ?
How are you handling these bugs in your applications?

How these errors (not bugs 😛) are handled in a script is a design decision, so there isn't a right or wrong answer here.

firstly Capabilities must be created - this following @error are related to creating capabilities

As I mentioned before, comments are informational only and shouldn't be interpreted as absolute.
For example, the comments associated to $_WD_ERROR_NotSupported are When user try to use unsupported browser or capability. But if you examine _WD_ElementStyle, you will see that this error code is used to indicate an unsupported combination of parameters.

To summarize your request --

UDFs should return the actual error codes from internal routines rather than a singular code such as $_WD_ERROR_Exception
This can certainly be done, but I'm thinking it should default to the current behavior. An option could be added to _WD_Option to allow the expanded error codes to be enabled.

Reorder $_WD_ERROR enum to allow for further processing based upon enum value
I'm not sure that this is feasible / desirable. You mentioned an alternative that used an internal function to check desired cases and set $iErr accordingly. I would suggest pursuing this option.

UDFs should return the actual error codes from internal routines rather than a singular code such as $_WD_ERROR_Exception
This can certainly be done, but I'm thinking it should default to the current behavior. An option could be added to _WD_Option to allow the expanded error codes to be enabled.

I'm fine with this. If you want and if you find some spare time can you provide PR ?

Reorder $_WD_ERROR enum to allow for further processing based upon enum value
I'm not sure that this is feasible / desirable. You mentioned an alternative that used an internal function to check desired cases and set $iErr accordingly. I would suggest pursuing this option.

Thanks. I will follow your advice.

In other words, I have a feelling that currently when you get $_WD_ERROR_Exception, _ ; Exception from web driver this mean that you should check for any possible errors like:
$_WD_ERROR_SocketError, _ ; No socket
$_WD_ERROR_SessionInvalid, _ ; Invalid session ID was submitted to webdriver
$_WD_ERROR_ContextInvalid, _ ; Invalid browsing context
$_WD_ERROR_UnknownCommand, _ ; Unknown command submitted to webdriver

so after getting $_WD_ERROR_Exception you should call _WD_CheckContext to be sure what is going on.

I wonder if you anywhere had a need to check after the error  $_WD_ERROR_Exception to check/call _WD_CheckContext ?

I wonder if you anywhere had a need to check after the error $_WD_ERROR_Exception to check/call _WD_CheckContext ?

No, this isn't something that I've done to date.

we should review these comments and change them as they are currently causing confusion

It would be simple to change that specific comment to "Unsupported option". Which others do you find confusing?

So finally we have

UDFs should return the actual error codes from internal routines rather than a singular code such as $_WD_ERROR_Exception
This can certainly be done, but I'm thinking it should default to the current behavior. An option could be added to _WD_Option to allow the expanded error codes to be enabled.

I'm fine with this. If you want and if you find some spare time can you provide PR ?

And https://github.com/Danp2/au3WebDriver/issues/447


Simplify SkPicture

This patch simplifies the SkPicture we generate for Skia. Instead of drawing
everything into a nested SkPicture, we now draw everything into the top-level
picture, which requires us to apply the device scale factor in Dart.

lgtm


Duplicated -lrt, -lpthread and -lutil in pkg-config file

Here is the relevant line in the generated .pc file:
Libs.private: -ldl -lrt -lpthread -lgcc_s -lc -lm -lrt -lpthread -lutil -lutil

It doesn’t prevent it from working here, but could eventually be an issue on some platforms.
The addition of -lc and -lgcc_s is weird too, I’m not sure how it will work on other platforms.  You may also want to replace -lpthread with -pthread, which is AIUI more portable.

It is a platform specific link line provided directly by rustc.
On linux with the normal binutils you may need this quite contrived link line.


I am not able to set custom icon.

Below is the code to set my custom icon. But still, it is showing library provided icon icon.
var reactionButton: ReactionButton!{
        didSet {
            reactionButton.reactionSelector = ReactionSelector()
            reactionButton.reactionSelector?.setReactions(self.createReactions())
       }

func createReactions() -> [Reaction] {
        var reactionArray = [Reaction]()
        let like = Reaction(id: "1", title: "Like", color: .red, icon: UIImage(named: "myIcon.png")!)
       reactionArray = [like]
       return reactionArray
}

I also suffered from the same problem? Have you solved this problem yet?

It does not work with single reaction, try adding more reaction :)


Error on api gateway when pushing new rest api

Before opening, please confirm:

[X] I have installed the latest version of the Amplify CLI (see above), and confirmed that the issue still persists.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.
[X] I have removed any sensitive information from my code snippets and submission.

How did you install the Amplify CLI?
npm
If applicable, what version of Node.js are you using?
14.10.1
Amplify CLI Version
7.6.26
What operating system are you using?
Mac
Did you make any manual changes to the cloud resources managed by Amplify? Please describe the changes made.
No manual changes made
Amplify Categories
function, api
Amplify Commands
push
Describe the bug
Hi,
I am adding a new REST API and a new Serverless ExpressJS function, and pushing it as is.
All the relevant resources were created.
When I am getting inside the function on AWS console and click on the API gateway trigger, I am getting the following error on AWS:
The API with ID 10ovcpoxra doesn’t include a resource with path /* having an integration arn:aws:lambda:us-east-1:11111:function:test-rahal on the ANY method.

And none of the api's are exposed. It looks like the connection between the api gateway and the lambda function was not actually created.
When I am deleting the api gateway that amplify created and add it manually, everything is working fine.
It looks like the parameters for the api are missing? When I am adding a new REST api, is it needs to create a stacks folder with the CustomResources.json file inside it, as I have for the other graphql api I have?
I also tried to create the api with different suggested templates and the same issue occured.
Expected behavior
Api gateway that exposes the relevant paths in the function.
Reproduction steps
amplify function add
? Select which capability you want to add: Lambda function (serverless function)
? Provide an AWS Lambda function name: test
? Choose the runtime that you want to use: NodeJS
? Choose the function template that you want to use: Serverless ExpressJS function (Integration with API Gateway)

Available advanced settings:
- Resource access permissions
- Scheduled recurring invocation
- Lambda layers configuration
- Environment variables configuration
- Secret values configuration

? Do you want to configure advanced settings? No
? Do you want to edit the local lambda function now? Yes
Edit the file in your editor: /amplify/backend/function/test/src/app.js
? Press enter to continue
Successfully added resource test locally.

ampify push

GraphQL schema(s)

# Put schemas below this line

Log output

# Put your logs below this line

Additional information
No response

Hey @may215 :wave: thanks for raising this! After adding the function we will need to attach it to a route on the REST API with amplify update api > Add another path > input path and choose the existing Lambda function we created.

Closing due to inactivity

Hi, thanks for the response, but, it's not helping me, I also tried to create a new function.

Also am seeing this. Please re-open

Having the same problem, please reopen

Just wanted to comment that today this happens to me too but in my case the way to reproduce this issue is to create the function and push it without adding the path, then I add the path and select the existing Lambda function and push again and that didn't solve the issue. My hypothesis is that you need to push the path and the function together, otherwise, you will face this issue.
In my case I add a path to the API and select create another function and then one push and no issue at all

This is an outstanding issue, please reopen

This is an outstanding issue, please reopen

same happened to me. Just testing out amplify with all the default and hello world options results in failure, seems like something that should be fixed. Just a simple amplify init, amplify add api with a Java function (which btw does not compile as well because of outdated gradle config it seems?).

Still issue remains the same

may the following solution it works for some
on API Gateway, click on your API resource, click on Any -> on the right side click on Integration Request on Lambda type. Uncheck the Lambda Proxy integration.

still an issue when you create the lambda I was forced to add both the gateway authorizer and lambda trigger manually despite specifying it in the cli, the biggest concern here is having to manually reprocess these steps in each stage and during promotions etc please fix

same here, whene when i "amplify push" in a different env than dev

I have the same issue.

I recently ran into this same issue, but the API calls work fine for me.  I set it up in this order:

Created the lambda function
Created the REST API with a single API path and pointed it to the existing lambda function
Added a second API path
Removed the first (original) API path

After doing all this, I still saw the same trigger error as the OP.


Airflow 6100 rename bigquery service

Make sure you have checked all steps below.
Jira

[ ] My PR addresses the following Airflow Jira issues and references them in the PR title. For example, "[AIRFLOW-XXX] My Airflow PR"

https://issues.apache.org/jira/browse/AIRFLOW-XXX
In case you are fixing a typo in the documentation you can prepend your commit with [AIRFLOW-XXX], code changes always need a Jira issue.
In case you are proposing a fundamental code change, you need to create an Airflow Improvement Proposal (AIP).
In case you are adding a dependency, check if the license complies with the ASF 3rd Party License Policy.

Description

[ ] Here are some details about my PR, including screenshots of any UI changes:

Tests

[ ] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[ ] My commits all reference Jira issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters (not including Jira issue reference)
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Documentation

[ ] In case of new functionality, my PR adds documentation that describes how to use it.

All the public functions and the classes in the PR contain docstrings that explain what it does
If you implement backwards incompatible changes, please leave a note in the Updating.md so we can assign it to a appropriate release

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@47facb4). Click here to learn what that means.
The diff coverage is 100%.

@@           Coverage Diff            @@
##             master    #551   +/-   ##
========================================
  Coverage          ?   84.3%
========================================
  Files             ?     677
  Lines             ?   38370
  Branches          ?       0
========================================
  Hits              ?   32347
  Misses            ?    6023
  Partials          ?       0

Impacted Files
Coverage Δ

airflow/gcp/operators/bigquery.py
84.39% <100%> (ø)

airflow/contrib/operators/bigquery_operator.py
100% <100%> (ø)

airflow/gcp/example_dags/example_bigquery.py
100% <100%> (ø)

airflow/gcp/example_dags/example_bigquery_dts.py
100% <100%> (ø)

...ontrib/operators/bigquery_table_delete_operator.py
100% <100%> (ø)

airflow/contrib/sensors/bigquery_sensor.py
100% <100%> (ø)

airflow/gcp/sensors/bigquery.py
52.38% <100%> (ø)

Continue to review full report at Codecov.

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


SSH_AUTH_SOCK across OS :

Make the SSH_AUTH_SOCK implementation O.S agnostic
The current implementation of SSH_AUTH_SOCK is O.S specific specifically OSX specific.
The below hard-codes the target path that works only for OSX.
--mount type=bind,src=$SSH_AUTH_SOCK,target=/run/host-services/ssh-auth.sock \
Change this to make it work for all OS's ,  specifically Linux.

Is there a quick fix for this issue?

@AlexHff Yes. There is a fix in today

@AlexHff If you are in a rush , check #24 .

PR committed


Do not use deprecated methods any more internally

We should either switch to the non-deprecated ones, or undeprecate the functions, if not possible otherwise.

Closed as of 5056afb443f4.


Can cvat be used to annotate ocr task?

Hello, can cvat be used to annotate image with box and line words for OCR tasks?

Hi @northeastsquare ,
It is definitely possible. Internally we don't have such tasks. I would annotate "line words" using 4 points polygon or 2 points polyline (underline the text). For such geometric primitives you have attach "text" attribute (label specification: line @text=text:""). Annotate all "lines" first and after that go to "attribute annotation mode" and annotate text itself.
Let us know if it works for you. Also if you have ideas how to improve UI/UX for the particular tasks don't hesitate to share these ideas with us or just send us a PR!

Hi @northeastsquare ,
I will close the issue. If you have other questions please use https://gitter.im/opencv-cvat channel. Don't hesitate to reopen the issue if it is necessary from your point of view.

Hi @northeastsquare ,
It is definitely possible. Internally we don't have such tasks. I would annotate "line words" using 4 points polygon or 2 points polyline (underline the text). For such geometric primitives you have attach "text" attribute (label specification: line @text=text:""). Annotate all "lines" first and after that go to "attribute annotation mode" and annotate text itself.
Let us know if it works for you. Also if you have ideas how to improve UI/UX for the particular tasks don't hesitate to share these ideas with us or just send us a PR!

Dear Mr. Manovich,
I tried to follow your method, although after annotating a word in a line with the help of polygon, I couldn't find the 'text' attribute which you mentioned. Could you point out where I can find this option?

@vinit13792 , please read the guide: https://openvinotoolkit.github.io/cvat/docs/manual/basics/creating_an_annotation_task/

@vinit13792 , please read the guide: https://openvinotoolkit.github.io/cvat/docs/manual/basics/creating_an_annotation_task/

Thank you Mr. Manovic!
I would also like to know if CVAT has any text detection models which can be used to add texts to this annotation attribute automatically?


Ability to pass fill rule through options

Hi! We're using rough.js for our application. We're facing issues with rendering path-based shapes due to the fill rule update. Would be very helpful to pass a certain fill rule via options.
In our case, there's no way to set non-zero to a cylinder path and filling is inconsistent

Can you share the SVG or code to create that shape?
Just want it add it for reference for any code changes. Thanks

@pshihn sure!
Let me know if it works
   const height = 100
	const width = 100
	const r = width / 2;
	const tilt = 0.3;

    const relativeHeight = height - (2 * tilt * r);
    const rt = Math.round(tilt * r * 1000) / 1000;

    const path = `M 0,${rt} a ${r},${rt} 0,0,0 ${width} 0 a ${r},${rt} 0,0,0 ${-width} 0 l 0,${relativeHeight} a ${r},${rt} 0,0,0 ${width} 0 l 0,-${relativeHeight}`;

	const options = {
		stroke: "#000000",
		fill: "#333399",
	}

	generator.path(path, options);


Brightfutures crashes on Xcode 11.2.1, Swift 5.1, iOS 13.2 - EXC_BAD_ACCESS

Hello,
Currently we are trying to get Pact.IO running for our iOS app. However we are unable to execute a MockService.run() without it crashing.
The application keeps throwing a "Thread 1: EXC_BAD_ACCESS (code=2, address=0x1)"
#2	0x0000000108391853 in AsyncType<>.onSuccess(_:callback:) at /$PROJECT/SourcePackages/checkouts/BrightFutures/Sources/BrightFutures/AsyncType+ResultType.swift:33
It seems that the problem is with Brightfutures. We could provide with a short Demo Project in order to reproduce the issue.
Thanks

@david-tigerspike If you can provide replication steps, or even better, a demo project, that will greatly assist.

@andrewspinks Thanks for your quick response.
Here you'd find attached a Demo Project. Just simply run the tests for it and it should fail.
Just to confirm. Our current set up is:
Xcode version: 11.2.1 (11B500)
Swift: 5.1
iOS: 13.2
PactTest.zip
Thanks again for your help

Hi @david-tigerspike I’ve tested this and it seems to be a SPM bug in Xcode 11.2. It works fine with Carthage. I’m about to confirm Xcode 11.3.
Is there a hard requirement for you to use 11.2?

Thanks for your reply and time @surpher
Sadly we are unable to use Carthage and we are waiting for XCode 11.3 to get out of the BETA. For now we will do the imports manually in order to get it working. We will keep an eye out for the new XCode version.
Thanks again

No problem. Xcode 11.3 is out of beta since yesterday! You're in luck ;)


Missing 1 / (Cd) normalization term?

Hi @Yujun-Shi,
From the paper:

In code:
/d^2
https://github.com/Yujun-Shi/CwD/blob/ac6d4eda9293fb8e0b5f39943795a6a2e264d1fd/src/approach/aux_loss.py#L49
/N
https://github.com/Yujun-Shi/CwD/blob/ac6d4eda9293fb8e0b5f39943795a6a2e264d1fd/src/approach/aux_loss.py#L57
*eta
https://github.com/Yujun-Shi/CwD/blob/ac6d4eda9293fb8e0b5f39943795a6a2e264d1fd/src/approach/lucir_cwd.py#L268
Is 1 / C missing from the code or it should be loss = loss / uniq_l.numel()?

Besides, shouldn't:
https://github.com/Yujun-Shi/CwD/blob/ac6d4eda9293fb8e0b5f39943795a6a2e264d1fd/src/approach/aux_loss.py#L43
be corr_mat = torch.matmul(x_label.t(), x_label) / (N - 1)?

@eiphy Hi, thanks for your interests in our work and sorry for the late response!
Essentially, Eqn. (8) in the main paper is obviously the most natural way of defining our objective and we do observe similar improvements by implementing in the exact form as Eqn. (8). However, we find that implementing exactly as in Eqn. (8) is not very numerically stable. We conjecture that it is because within one batch of data, number of samples of each class might be very different, which means directly normalize by number of instances of each class might not be the most ideal operation. Therefore, we slightly adjust the normalization here, and the results become slightly more stable. All results in the experimental sections are produced by the version used in our code.
However, we would like to emphasize that the spirit of our method is not in these normalization (such constant normalizations only have limited impact on performance). The determinant factor of our CwD is the decorrelation operation. As long as the representations are decorrelated, and representations don't lie in the collapsed subspace, the performance should be improved.
Additionally, the reason why we only extract the off-diagonal terms for regularization instead of penalizing the Frobenius norm of the correlation matrix is elaborated in the comment of our code.
Hope this answer can help resolve your confusion :)

@Yujun-Shi
Thank you for your explanation!


clock: Replace [] tests with individual tests (#298)

See #298

Great work, thanks @balazsbotond!

@balazsbotond I've noticed that all of your PRs tend to have a lot of unrelated changes that have already been merged. I've been merging them with squash commits so it doesn't show up in the history (except the extended description). This one for example has 8 commits. Do you know why that is?

@robkeim I don't know exactly why but I think if I delete my fork, create a new one, develop all new changes in separate branches and delete them after the pull request has been merged, and then update my fork with --ff-only, the issue will be resolved. I'll try it with the next pull request.

You don't need to delete your fork, you just need to make a pull from the upstream branch to keep your fork up-to-date.
Here's the script that I use to update my fork:
git fetch upstream
git checkout master
git merge upstream/master
git push

Once your fork is up-to-date, then you can develop your changes from the head of master. Does that make sense?

Thanks. I did the exact same thing, so I have no idea what went wrong...

Hmm... I'm not sure then. Did you rebase on to master after updating your fork?
I'm not a git wizard so I can't tell you all of the commands to make sure that things look right, but I use SourceTree to visualize the source history and make sure everything looks right before sending my PRs.

About the Git stuff, I also noticed that. It's not really a problem due to us being able to squash the commits, however it does look a bit odd. How I usually approach this, is by doing a rebase on my branch.
So suppose I have the branch checked out that I will submit as a PR. I then do the following:

git fetch upstream
git rebase upstream/master
git push --force

This will rebase the branch based on the latest master branch of the upstream remote. You then usually have to do force push, as the tree has become different. This is no problem, as long as you are pushing the branch to your own fork (which I assume you are the only one working on).
Note that if you use the GitHub desktop client to clone the repository, the original remote (from which you forked) will be named exercism. So in that case, exercism replaces upstream.

And thanks for the PR @balazsbotond! Hopefully @kytrinyx will soon be able to add you as a maintainer.

Thanks @ErikSchierboom, this solution looks very promising - I'll try it for my next pull request :)


Allow opting out of pre-release extensions in Insiders installs

Ref  #138086
I use VS Code insiders because I trust the VS Code team to release generally-reasonable insiders builds and respond quickly to severe issues in them. Additionally, I expect that VS Code insiders will have bleeding-edge features that I want to use. None of these conditions are true for extensions. It'd be nice to have a way to say even though I'm on Insiders, I don't want my extension install button to default to Pre-Release.

Note 2 of the test issue mentions a setting to do this. But #138193 says it's not working, and in any case maybe you don't want it to be merely an 'internal' one.

CC @isidorn

Fair request. Nothing I think we should add before more users request it. I love the choice that the dropdown gives you, so the setting would just be convenience to not click on the dropdown...

We closed this issue because we don't plan to address it in the foreseeable future. If you disagree and feel that this issue is crucial: we are happy to listen and to reconsider.
If you wonder what we are up to, please see our roadmap and issue reporting guidelines.
Thanks for your understanding, and happy coding!


Scanning subnets

I would love to have the ability to scan entire subnets with this tool, unless I am missing something on how this is done? (Using .* and 0/24 both do not work)

I have closed this as I just used a bash script to fix the problem. Reopen if wanting to implement.


Enhanced : adding some badges to the readme to make it look more visually appealing #26

Changes made

Added owner badge , linked it to the owner and aligned it to the center.
Aligned the technology badges to center to make it look more visually appealing.
Added Nodejs badge and linked it to official Nodejs website.
Added License section which contains License badge that links to LICENSE.

Issue solved : #26

Please share the SS for the changes you made. It is tough to evaluate otherwise...

@1Shubham7 These are the changes I made

Added owner badge , linked it to the owner and aligned it to the center.
Aligned the technology badges to center to make it look more visually appealing.

Added Nodejs badge and linked it to official Nodejs website.

Added License section which contains License badge that links to LICENSE.

Could you please mention the gssoc label and level label for this
contribution.
It will be helpful to my points
On Fri, May 10, 2024 at 9:00 PM Shubham Singh @.***>
wrote:

Merged #47 https://github.com/1Shubham7/Wife-Predictor-v2/pull/47 into
main.
—
Reply to this email directly, view it on GitHub
https://github.com/1Shubham7/Wife-Predictor-v2/pull/47#event-12771176762,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYZOTNGW4GH5FMHTVMV5QHLZBTR2VAVCNFSM6AAAAABHQYUYGCVHI2DSMVQWIX3LMV45UABCJFZXG5LFIV3GK3TUJZXXI2LGNFRWC5DJN5XDWMJSG43TCMJXGY3TMMQ
.
You are receiving this because you authored the thread.Message ID:
@.***>

I am not sure about if I have to add the label in PR as well. Please remind me later, I will ask the GSSoC people. (Or you can show me a PR example from any other project in GSSoC.

I asked this question in discord and One of the GSSoC people gave this
reply,
[image: image.png]
So you can add the label, since you are project Admin
On Fri, May 10, 2024 at 9:29 PM Shubham Singh @.***>
wrote:

I am not sure about if I have to add the label in PR as well. Please
remind me later, I will ask the GSSoC people. (Or you can show me a PR
example from any other project in GSSoC.
—
Reply to this email directly, view it on GitHub
https://github.com/1Shubham7/Wife-Predictor-v2/pull/47#issuecomment-2104853462,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AYZOTNFDXOFS6KZXZWZTXN3ZBTVH7AVCNFSM6AAAAABHQYUYGCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBUHA2TGNBWGI
.
You are receiving this because you authored the thread.Message ID:
@.***>

@1Shubham7 Please add the labels for PR also

@1Shubham7 Please add gssoc and level label, otherwise they will not consider my points

@1Shubham7 Thank you but label should be level2, there should not be any capitals and spaces. Then only they will consider

@1Shubham7 Please add gssoc label and please assign this PR to me


Round two of erroneous shard removal

Continues #453 by removing shards that have CI, but has never been ran.

Adds some additional shards to the exempt list, if there are anymore that should be there let me know

Not sure if they're all still maintained tho :man_shrugging:

Fixes owner of cadmium \cc @watzon

Let me know in the comments if you setup period CI builds and I can update the list/add the shard back.
Removed Shards
https://github.com/Angarsk8/realtime-todo-app - @Angarsk8
https://github.com/ChangJoo-Park/kemal-vue-chat - @ChangJoo-Park
https://github.com/DougEverly/slack.cr - @DougEverly
https://github.com/Fusion/libui.cr - @Fusion
https://github.com/Papierkorb/qt5.cr - @Papierkorb
https://github.com/Qwerp-Derp/hedron - @Qwerp-Derp
~https://github.com/RX14/predict.cr - @RX14~
https://github.com/TechMagister/bindgencr - @TechMagister
https://gitlab.com/Zatherz/cray - @Zatherz
https://github.com/aisrael/migro - @aisrael
https://github.com/akwiatkowski/kemal-auth-token - @akwiatkowski
https://github.com/andrewsuzuki/termbox-crystal - @andrewsuzuki
https://github.com/anykeyh/crystal-coverage - @anykeyh
https://github.com/arcage/crystal-logreader - @arcage
https://github.com/arcage/crystal-email - @arcage
https://github.com/askn/crystal-by-example - @askn
https://github.com/bararchy/mos_game - @bararchy
https://github.com/barisbalic/crystal-monzo - @barisbalic
https://github.com/bitfex/capistrano-kemal - @bitfex
https://github.com/blocknotes/manual-generator - @blocknotes
https://github.com/cagataycali/kemal-heroku-example - @cagataycali
https://github.com/codenoid/crystal-mysql-crud-example - @codenoid
https://github.com/codenoid/jihantoro-cr-mysql - @codenoid
https://github.com/codenoid/jihantoro.sd - @codenoid
https://github.com/codenoid/kemal-mysql-blog - @codenoid
https://github.com/codenoid/chuck-norris-holy-quotes - @codenoid
https://github.com/colstrom/zq - @colstrom
https://github.com/drujensen/delimiter_tree - @drujensen
https://github.com/elorest/compiled_license - @elorest
https://github.com/elorest/bitfields - @elorest
https://github.com/elorest/crelease - @elorest
https://github.com/f/completion - @f
https://github.com/f/kemal-react-chat - @f
https://github.com/f/temel - @f
https://github.com/f/guardian - @f
https://github.com/gdotdesign/cr-melon - @gdotdesign
https://github.com/instana/crystal-sensor - @instana
https://github.com/jasonl99/lattice-core - @jasonl99
https://github.com/jasonl99/card_game - @jasonl99
https://github.com/kemalcr/spec-kemal - @kemalcr
https://github.com/kostya/cron_scheduler - @kostya
https://github.com/kostya/crystal-benchmarks-game - @kostya
https://github.com/kuende/murmur3 - @kuende
https://github.com/l3kn/raytracer - @l3kn
https://github.com/naqvis/brotli.cr - @naqvis
https://github.com/naqvis/xz.cr - @naqvis
https://github.com/oprypin/crsfml-examples - @oprypin
https://github.com/osfx/open_exchange_rates - @osfx
https://github.com/papilip/helptransl8 - @papilip
https://github.com/phoffer/crystalized_ruby - @phoffer
https://github.com/puppetpies/kemal-monetdb - @puppetpies
https://github.com/puppetpies/crystal-monetdb-libmapi - @puppetpies
https://github.com/romeroadrian/nes.cr - @romeroadrian
https://github.com/samueleaton/sentry - @samueleaton
https://github.com/samueleaton/cache-hash - @samueleaton
https://github.com/sdogruyol/kemal-chat - @sdogruyol
https://github.com/sdogruyol/fast-http-server - @sdogruyol
https://github.com/spalger/crystal-mime - @spalger
https://github.com/stumpycr/stumpy_gif - @stumpycr
https://github.com/timcraft/nexmo-crystal - @timcraft
https://github.com/vonKingsley/crass - @vonKingsley
https://github.com/waterlink/query.cr - @waterlink
https://github.com/ysbaddaden/prax.cr - @ysbaddaden
https://github.com/ysbaddaden/posix - @ysbaddaden

Got pinged because of a binding I wrote like 2 years ago and I don't really understand. Is this just pointless jerking off over CI setups for sub-1k line libraries that barely anybody uses?

The point of this is to ensure that the shards in the repo still compile and work as intended.  CI ensures that both of those are still true.
#347 Made it a requirement that shards have period CI builds.  This PR is a part of the process to cleanup the shards that do not.
This isn't anything personal to anyone in particular.  If you're not maintaining your shards anymore just hit the Unsubscribe button and don't worry about it.
Otherwise, I mention people to give them time to update their shard to have CI, even if it's like a single simple test to ensure it still compiles.
It's not a good experience when you have a repo of like "come checkout all the cool Crystal shards we have" when over half of them don't even work anymore.

@veelenga I'm recalculating the list now, just in case anyone added it since I originally opened this PR.

@Blacksmoke16 can you confirm this is the final step of the cleanup?

No, there is one more batch of repos that CI hasn't been built in more than 30 days; which would be those without periodic builds.

The following 3 libraries are maintained and currently used in quite a few other projects. Sorry I've been traveling a lot for work lately. What needs to be done with these? They all of passing specs.
https://github.com/elorest/compiled_license - @elorest
https://github.com/elorest/bitfields - @elorest
https://github.com/elorest/crelease - @elorest

@elorest Could you set up some form of CI for them with period builds?  I.e. Travis, Github Actions, Circle etc.

@elorest Could you set up some form of CI for them with period builds? I.e. Travis, Github Actions, Circle etc.

Yeah. I'll get that done this week.
My only real concern is that this list is very useful in indexing crystal libraries and bindings. Removing libs which haven't been updated in a couple breaking crystal versions gets makes in harder to access many useful libraries which could easily be fixed by a new contributor looking to use them. Rubygems has many gems which don't work with ruby 2.7 but they're still really useful for reference and can easily be fixed next time they're used.
I'd suggest that rather than removing them we move them to the bottom of the list under.
Not currently maintained!

@elorest That's not a bad idea.  Maybe we could throw them in a new file to keep them out of the README?  I'd like @veelenga's thoughts on this first tho.
Either way, the removed shards will be in version control so it wouldn't be hard to bring them back.

@elorest @Blacksmoke16 this is a curated list of working shards. We want to guarantee they work.
There are other resources to list/search across all shards which much more useful for described use case:

http://shards.info/
https://crystalshards.org/
GitHub (i.e. https://github.com/search?q=language%3ACrystal+binding&type=Repositories)

been out of office for a while. Got pinged for https://github.com/samueleaton/sentry
It used so frequently at some large companies that we typically catch breaking changes pretty quickly. I can add CI to it but its not really a priority for me.

@samueleaton Feel free to make a PR to add it back once it's added then.

I am amused by the fact that you rejected the library despite it apparently being used in a lot of real places doing real work because it doesn't have a green PNG in its readme.

If I allow that one then that starts a precedent that "oh my shard is used a lot so I shouldn't have to bother."
If it's used by so many people I'm sure someone will take the 10 minutes it would take to setup CI and be done with it.

@zathers Being not a part of this list doesn’t mean we think a shard is bad or unusable. Actually, that is great yours is doing real work and used in many places.
However, we want to control the list quality and ensure most of the entries are up to date and work with latest crystal. The most applicable way for us is some automation, since no one of us is able to verify each entry on a regular basis.
That means each shard needs to have a CI build, which is also a good sign of a developer workflow. As simple as is, no green png in the readme is needed :)
If you disagree with the above, I can add your shard to the exception list. Don’t want to offense someone or reject any valuable effort.


Simplified bevy_color Srgba hex string parsing

Objective

Simplify Srgba hex string parsing using std hex parsing functions and removing loops in favor of bitwise ops.

This is a follow-up of the bevy_color upstream PR review: https://github.com/bevyengine/bevy/pull/12013#discussion_r1497408114
Solution

Reworked Srgba::hex to use  from_str_radix and some bitwise ops;

Would be nice to add some test cases for RGBA and RRGGBBAA variants where the colors have different values.
assert_eq!(Srgba::hex("11223344"), Ok(Srgba::rgba_u8(17, 34, 51, 68)));
assert_eq!(Srgba::hex("1234"), Ok(Srgba::rgba_u8(17, 34, 51, 68)));

Added more tests to make sure RGBA is right.


Bring revisionHistory schema in line with spec

Would like your feedback on this one. This is my interpretation of the flat list of fields:

RevisionData
Date of creation
Date
ISO 8601

RevisionData
Created by
String
Curator username

RevisionData
Date of edit
Date
ISO 8601

RevisionData
Edit made by
String
Curator username

RevisionData
Edit details
Text
None

It seems like we want the current version of the case to show original creation metadata (date/curator/notes) -- but also show the latest edit, if any. I think those two are sub-documents that share a schema.
I also took this opportunity to s/id/revisionNumber to be clearer, and s/moderator/curator, since I pretty much only hear the latter term used.

 Updates to schema based on standard spec

Codecov Report

Merging #258 into master will increase coverage by 0.11%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #258      +/-   ##
==========================================
+ Coverage   92.93%   93.04%   +0.11%
==========================================
  Files          15       15
  Lines         184      187       +3
  Branches       28       29       +1
==========================================
+ Hits          171      174       +3
  Misses         13       13

Impacted Files
Coverage Δ

...erving/data-service/src/model/revision-metadata.ts
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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


ParseInt for validateCode

Parse validateCode as an integer. We could make the UI take in an integer, but then the user is presented with a number selector which isn't ideal. Easiest to keep it as a string in the UI and just parse it as an int on the backend.
:recycle: Current situation
The Homebridge UI puts the verification code in the config as a string which causes an authentication error on august's servers. Changing it to an int works, but then you have to manually update the config.
:bulb: Proposed solution
Add parseInt before the code is sent to the server. This way both integer and string verification codes will work right with august's servers.
:gear: Release Notes
Plugin now works correctly with string-based verification code configs.
Testing
N/A

@evantobin, I have re-based this to the beta-1.0.6 branch. Can you resolve the conflicts? or close this PR and create a new one based on the beta-1.0.6 branch?

I'll create a new one on the beta branch. Github by default only forked the latest branch.

Thanks!


Cache events not send to ray app

Describe the bug
after adding SEND_CACHE_TO_RAY=true in .env, nothing event send in rayp app
Versions
Ray version (you can see this in "About Ray"): 2.7.5
You can use composer show to get the version numbers of:

spatie/ray package version: 1.41.2
spatie/laravel-ray package version (if applicable): 1.36.2

PHP version: 8.3.1
Laravel version: 11.7.0
To Reproduce
Steps to reproduce the behavior:

Add SEND_CACHE_TO_RAY=true to .env
enable cache using memcached
click page that use cache
see ray app no cache event send

Expected behavior
expected that ray app receive cache events
Desktop (please complete the following information):

OS: Linux Mint 21.3 Cinnamon
Version

Additional context

Hi, it work after setup of servers connections for homestead, it seems ray app receive any data even without configured servers except cache events,


Remove value listener from semantics bindings

This regressed memory benchmarks. For testing purposes I added a debug override. We can explore adding this feature to tickers/animation controllers in the future.


update pom.xml

It looks like a lot of the selenified integration tests aren't passing with this new versioning. My guess is it's the selenium bump. We'll need to determine why, and either update tests, or look for a version without bugs

looks like this version bump is stable. I've been testing it for a while.
@grasbergerm @HammidFunsho any thoughts about merging it in?