[HOLD #12370][$2000] Audit forms and fix inconsistencies with focus, tab and shift + tab behavior 3/4

We should audit all our forms and fix any inconsistencies with focus, tab, shift + tab and enter behavior. The expected behavior is as follows:

Tab navigates to the next input.
Shift + tab navigates to the previous input.
Enter submits the form.
Space toggles checkboxes/dropdowns.

Note: We should make sure that tabbing cycles through the form in an order that makes sense, usually top to bottom.
Here's a list of forms to be audited:

[ ] IOU flow
[ ] KYC flow
[ ] New Room screen
[ ] Add Debit card flow
[ ] New password form

Triggered auto assignment to @marcochavezf (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

Triggered auto assignment to @Christinadobrzyn (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

Note: decision to split this main issue up into smaller issues came from this convo

I've been working on an N7 issue these last few days and still today, but I will come back to this issue today at EOD or tomorrow morning.

Followed up about the price for this Upwork job in Slack here

Oh I hadn't seen the conversation. I think this case I can just unassign myself since the Exported label will be applied to assign reviewers.

Dylan confirmed this GH job is $250. Created Upwork job
Internal job posting - https://www.upwork.com/ab/applicants/1499638878787203072/job-details
External job positing - https://www.upwork.com/jobs/~014a2b9d0ae263c283

Triggered auto assignment to Contributor-plus team member for initial proposal review - @Santhosh-Sellavel (Exported)

Triggered auto assignment to @thienlnam (Exported), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

Proposal
These 4 related issues are very similar. I proposed the solution here https://github.com/Expensify/App/issues/7918#issuecomment-1063298280

Still waiting on a volunteer to audit the forms

Price increase to $500

Price increased to $1000, still looking for a volunteer

Job price increase to $2,000

I have noticed that we have a team of accessibility engineer may be they can help us audit and the contributor can submit proposal for fixing that issues?

Hi I am interested in this issue.  I am confused about the expectations, do we just need to update the tab functionality if it does not work as expected?
How do you access the KYC flow page?

I have noticed that we have a team of accessibility engineer may be they can help us audit and the contributor can submit proposal for fixing that issues?

Good suggestion, though our accessibility QA team is going through a different flow so they wouldn't test this unless a PR happened to touch these forms.  We've narrowed the scope of this issue and since it's just checking a few things I think a contributor should be able to do it
@OneDevStopShop If you're looking for an example of what needs to be done,  feel free to check this other similar issue out https://github.com/Expensify/App/issues/7523

How do you access the KYC flow page?
Good question, this step comes up when we're setting up your Expensify Wallet.  Check out the EnablePaymentsPage and you'll likely have to be on a new account.

I looked through the issue you linked and would like to take this issue

Hired @OneDevStopShop for the job and @Santhosh-Sellavel as the C+ in Upwork!

@OneDevStopShop If you have any questions please feel to post them here. Thanks!

I would like to take this one. I am also assigned other form audit issues and working on it. Thank you.

@mdneyazahmad Any update?

Wait, sorry @thienlnam I might have missed something.
I hired @OneDevStopShop for this job based on the 'thumbs up' to this post - https://github.com/Expensify/App/issues/7917#issuecomment-1090410859
Should I hire @mdneyazahmad instead?

@Christinadobrzyn No you were correct in hiring them. Though from this comment https://github.com/Expensify/App/issues/7917#issuecomment-1093009100 it seems like they're having an issue with Upwork and so I've hired @mdneyazahmad for the job instead

Oh I'm so sorry, not sure how I missed that comment. Thank you for clarifying!
I hired @mdneyazahmad for the job! Sorry about the confusion.

@mdneyazahmad please note that 4. Space toggles checkboxes. was added to the list of expected behavior.

@mdneyazahmad Kindly provide an update on how is it coming up?

@Santhosh-Sellavel sorry for delay. I will work on this one today. Thank you.

I'm going to be ooo until April 26th so I'm going to assign a new CM to this issue. Thanks!

This issue depends on https://github.com/Expensify/App/issues/7623 I will have to wait until that issue is fixed.

@mdneyazahmad How does it depend on the #7623?
cc: @thienlnam

In this issue we have to fix inconsistency with tab and shift + tab which seems to work fine and also the form should submit when enter is pressed.
Current implementation:
Button component accepts enterOnPress as prop and register a global keypress listener for Enter and calls form submit function. This however does not work as expected because enter can be pressed to press a button outside the form https://github.com/Expensify/App/issues/7918#issuecomment-1096631126
This depends on that issue because that tries to solve the same core problem how to handle the Enter key pressed and PR for this issue will depend on the decision taken there.
cc: @Santhosh-Sellavel

Thanks, @mdneyazahmad. Let's not wait for it.
Perform the audit on each form and list out the issues/inconsistencies.
if there are issues with Enter to submit  feel free to point out that too.
cc: @thienlnam

Form audit
IOU Confirmation Page

tab and shift + tab works as expected.
enter submits the form.
There is no checkbox.

https://user-images.githubusercontent.com/77761491/163789014-37959fa4-795a-41e4-be5c-eda96c64b392.mp4
New Room Screen

tab and shift + tab works as expected.
enter submits the form.
There is no checkbox.

https://user-images.githubusercontent.com/77761491/163789300-450bb9cd-b9a2-4cdc-a39a-8803e9cd2a07.mp4
Add Debit Card Flow

tab and shift + tab works as expected.
enter submits the form.
space does not toggle checkbox.

https://user-images.githubusercontent.com/77761491/163789610-7fe7cde7-eaa6-4408-9937-758217b04a9d.mp4
New Password Form

tab and shift + tab works as expected.
enter submits the form.
space toggles checkbox (eye icon).

https://user-images.githubusercontent.com/77761491/163789733-b9d4b2de-9d49-4a9d-9159-74d0e6b2cdf7.mp4

There are some other issues.
New Room Screen

Option select focus styles is applied even when it goes out of focus.

Add Debit Card Flow

Option select (State Field) focus styles is applied even when it goes out of focus.
State Field does not have error text.
It automatically enters some text (possibly first 5 letters of email) into zip code field when page loads.

New Password Form

Submit button is disabled by default.
When we enter invalid password and press enter to submit. It produces error and validates the password on input. It should not validate on input instead it should on submit.
It does not have red outline when it is invalid.

@Santhosh-Sellavel Could you help me navigate KYC Flow?

@mdneyazahmad
Navigate to /settings/payments/enable-payments which KYCFLow start point
These are steps in the flow, make some code tweaks to test the same.
https://github.com/Expensify/App/blob/6c53be1ea7a022e8a5e788cc7e7efd62c4573474/src/pages/EnablePayments/EnablePaymentsPage.js#L59-L64
@luacmartins can you confirm this.

@Santhosh-Sellavel correct! I'd just hardcode each step individually to test each of them.

Sometimes, it depends on the data from previous step and if not present there it will crash. I will test and let you know if this method works. Thank you!

KYC Flow
Step 1

tab and shift + tab works as expected.
enter submits the form.
There is no checkbox.

https://user-images.githubusercontent.com/77761491/164278074-db37063d-92e9-4801-a54f-bfe1bc2efb90.mp4
Step 2
There is no form element.

Step 3

tab and shift + tab works does not work as expected. View printer friendly is skipped.
enter does not submits the form.
space does not toggle checkboxes.

https://user-images.githubusercontent.com/77761491/164278088-faab2d7c-68ec-4dc5-bc5c-ce8f28886b09.mp4
Step 4
There is no form element. It has just text.

Other issues

Step 1 and step 3 have footer button that is not fixed at the bottom.

https://user-images.githubusercontent.com/77761491/164279347-288eec03-1777-4cb5-98f5-b9ff8955c632.mp4

Step 2 footer button has double spacing.

@mdneyazahmad Thanks for the videos
For the KYC flow -
Step 1 and step 2 look good.  No changes needed there
Let's address these issues in step 3

tab and shift + tab works does not work as expected. View printer friendly is skipped.
enter does not submits the form.
space does not toggle checkboxes.

As for the other issues, let's go ahead and have those addressed in the PR as well

I am not sure about the checkbox implementation. Current version uses a button for checkbox which is toggled when button is pressed (Enter).  The ideal component to use here is the native checkbox element (eg. <input type="checkbox"> on web). This way browser will provide default behaviour for accessibility and will dispatch an SubmitEvent when Enter is pressed.
I am curious to know how the other issue is solved and based on that the implementation may change here for form submit with Enter.
cc: @thienlnam @Santhosh-Sellavel

I am curious to know how the other issue is solved and based on that the implementation may change here for form submit with Enter.

Sorry What other issue? could you add more context, please!
@mdneyazahmad

@mdneyazahmad
Regarding IOU Confirmation we should check all IOU operation confirmation pages.

Request Money
Send Money
Split Bill Using FAB in LHN
Split Bill from group chat/multiple participants.

Thanks!

The ideal component to use here is the native checkbox element (eg.  on web)

I think this is fine, not sure why we would need it to be a button

The ideal component to use here is the native checkbox element (eg.  on web).

This is interesting, we could add a web version of the checkbox that just uses this but is there a way we can have this done with React Native adding a shortcut when the checkbox is focused?

@Santhosh-Sellavel I was talking about https://github.com/Expensify/App/issues/7623 (other issue). I am sorry I missed that to audit with all four pages posting soon. Thank you!

I am ooo and will be back in 1 -2 days.
Remaining task

[ ] audit https://github.com/Expensify/App/issues/7917#issuecomment-1106834209
[ ] fix checkbox

Thank you!

Request money

tab and shift + tab works as expected.
enter submits the form.
There is no checkbox.
enter toggles selections (OptionsList) as well as navigates the user to the next step.

https://user-images.githubusercontent.com/77761491/166134375-6db1fcc1-99ce-44df-b683-5e4bb2c8daa8.mp4
Send money

tab and shift + tab works as expected.
enter submits the form.
There is no checkbox.
enter toggles selections (OptionsList) as well as navigates the user to the next step.

https://user-images.githubusercontent.com/77761491/166134376-d193fb1c-4bad-49b7-a45d-b36e2ec2e154.mp4
Split from fab

tab and shift + tab works as expected.
enter submits the form.
There is no checkbox.
enter toggles selections and you have to press tab multiple times to focus on the submit button and then press enter to navigate to the next step.

https://user-images.githubusercontent.com/77761491/166134379-ee1fd82c-60d5-4f0e-8ee0-7ae16022c786.mp4
Split from group

tab and shift + tab works as expected.
enter submits the form.
There is no checkbox.
enter toggles selections (OptionsList) as well as submits the form.

https://user-images.githubusercontent.com/77761491/166134381-8af709a5-61d0-4eca-b509-92ca770ac6b1.mp4

This is my initial attempt to fix the checkbox accessibility.

Created a separate implementation for native and others.
native implementation is exactly same.
web and desktop added custom logic to handle onClick and onKeyDown to listen for space.

You can check the diff here https://github.com/Expensify/App/compare/main...mdneyazahmad:fix/checkbox

There are issues with OptionsList. It toggles selection with enter and when you press it toggles as well as submits the form that is not the user is expecting. We are discussing the accessibility of OptionsList in the other issue may be continue the discussion here https://github.com/Expensify/App/issues/7916#issuecomment-1113592130

@Santhosh-Sellavel PR will be ready for review in few hours.

@Santhosh-Sellavel PR is ready for review https://github.com/Expensify/App/pull/8874

I see only check box changes there what about the issues mentioned here, https://github.com/Expensify/App/issues/7917#issuecomment-1101323703

^^ Bump @mdneyazahmad, are you working on including these in the PR?

I am sorry for the delay PR is almost ready.

Yes, group upto maximum two tests in a single video.
Break down into seperate comments for each test or grouped tests, yes upload all platform videos thanks!

@Santhosh-Sellavel Could you please review it (#8874) and if looks good merge it. I am trying to create a separate PR to fix tab and enter inconsistency and the checkbox PR should me merged for testing.
I created a separate PR for the checkbox because that is common to other audit issues.

I am trying to handle other issues in a separate PR. Checkbox issue is common to the other issue I am working therefore I created a separate PR for that.
PR for other issue is drafted here https://github.com/Expensify/App/pull/8747 but I am introducing one issue if we go with the pressOnEnter on Button  https://github.com/Expensify/App/issues/7918#issuecomment-1134216565
cc: @Santhosh-Sellavel

Thanks for the update, I'll review that alone by tomorrow!

Just waiting for an update from @mdneyazahmad regarding issue fixes for this audit.
Also, checkbox PR is currently in review

@Santhosh-Sellavel We have an issue with Button pressOnEnter  https://github.com/Expensify/App/issues/7918#issuecomment-1144280328. Asked on slack here https://expensify.slack.com/archives/C01GTK53T8Q/p1654195847140899

Hey @mdneyazahmad any update on this? There was a suggestion on the Slack convo you'd linked, will it solve this issue?

The key to solving this problem generally is the shouldBubble configuration parameter of keyboard event handlers.

@stephanieelliott Sorry for the late reply. I tested that solution does not work.

@mdneyazahmad What's the current status of this issue, we have been on this for months. Can we speed this up?

@Santhosh-Sellavel I do want to finish this asap. But we are stuck at handling ENTER for submitting the form as it creates secondary interaction. Could you please join discussion here, and here and help move forward.
Related PR:

https://github.com/Expensify/App/pull/8747
https://github.com/Expensify/App/pull/8874

Discussions are ongoing in Slack...

@mdneyazahmad  We have an update on the slack thread can you check it out.

Hey @dylanexpensify, reassigning this one since I am about to head OOO. To save you some scrolling, we got bit stuck on the best way to handle button behavior, discussion on that is going on here: https://expensify.slack.com/archives/C01GTK53T8Q/p1654195847140899. Thank you!

Sounds good! Thanks @stephanieelliott and have a great OOO time!

@mdneyazahmad Any update here?

@mdneyazahmad Any update? I would suggest pushing things to reach the finish line. If there are no regular updates, we will close the PR and reevaluate the current state of the issue.

@parasharrajat I am sorry for the delay I was sick in the last few days. I think we are not yet reached the conclusion slack thread.

Any updates here? cc @mdneyazahmad

@dylanexpensify Still discussing. I will post some new ideas.

@mdneyazahmad Looks like there has been consensus with 1, are we able to move forward with that now?

Continue using a single global keyboard event handler library, patching it with the solution from this PR so that local event handlers can override the global ones

@thienlnam I had posted my thoughts on that method. I will re review it and post the conclusion. Thank you!

Not overdue. @Santhosh-Sellavel Could you please check it? I propose an alternate solution that may fix the issue https://github.com/Expensify/App/pull/9749#discussion_r946663417

@thienlnam this issue is not fully completed can we update the title to avoid any confusions
2 more PRs to go!
cc: @dylanexpensify

Pending PR

Looks like this PR has been pending review for a while https://github.com/Expensify/App/pull/10965#issuecomment-1261256955
Bump @parasharrajat

@mdneyazahmad whats the status here?

Under review now

@parasharrajat @mdneyazahmad  any updates?

Under review https://github.com/Expensify/App/pull/10965

Thanks @mdneyazahmad !

any updates @mdneyazahmad

On hold!

on hold

on hold

@dylanexpensify why do we have a hold on this issue?

@luacmartins a component is being introduced in the PR (https://github.com/Expensify/App/pull/12370) that will be used here. Therefore, this is on hold. Thanks!

Has the New Room screen already been audited? Because I've been updating that to use the form component as part of https://github.com/Expensify/App/issues/12678.

@luacmartins unsure - I see @puneetlath added it on hold, any insight Puneet? Or are we good to move forward?

Let's discuss this one in Slack here, as I think this should be held on WAQ as it's an issue related to keyboard navigation accessibility.

We have why this is on hold answered here

Still on hold for this PR here - https://github.com/Expensify/App/pull/12370

Commented similarly in a related issue, but two things:

WAQ is over, so let's take this issue off hold.
Now that this is off hold, I think we have a decision before us. Do we do anything at all? I actually vote no, we shouldn't. I still don't think keyboard navigation is a priority – including but not limited to tab, shift + tab, etc. – so better to close this issue and move on. Please let me know if I'm missing something!

I think we are really close to merging the PR, so I think we can continue with this one.

Oh nvm my comment above, that PR is solving a different issue. @thienlnam @mdneyazahmad @Santhosh-Sellavel what's the latest on this one?

@luacmartins a component is being introduced in the PR (#12370) that will be used here. Therefore, this is on hold. Thanks!

This is on hold for the same PR

Ah, if this issue is on hold for a specific issue, then let's add it. I mainly got here combing the repo for issues held on WAQ. All that said, I think this is a really low priority issue.

Update: PR (https://github.com/Expensify/App/pull/12370) is merged! I will create the PR for this issue this weekend. Thanks!

Out of these components:

IOU flow
KYC flow
New Room screen
Add Debit card flow
New password form

After this PR (https://github.com/Expensify/App/pull/12370) and this (https://github.com/Expensify/App/pull/8874), the issue seems to be fixed as I have made the changes in Form component to handle the form submit action with enter key, and these components import and use Form. Thus the issue is fixed.
[IOU flow]: Works fine
[KYC flow]: I can not navigate to this, but I have checked the code of this components. This also seems to be fixed as this also uses the updated Form component.
[New Room screen]: Works fine
[Add Debit card flow]: Works fine
[New password form]: This is fixed in this PR (https://github.com/Expensify/App/pull/12370)
This is the change I am referring to
https://github.com/Expensify/App/blob/142fbba48c2d5b17c809eff8f85cfc3611dee47b/src/components/Form.js#L282
cc: @luacmartins @Santhosh-Sellavel

Cool, we had few other issues other than submit issue right? Or all the issues are fixed?
Whats next @mdneyazahmad?

Tomorrow I'll go through the thread to look if anything is missed and confirm everything is working.

Cool, we had few other issues other than submit issue right? Or all the issues are fixed?
Whats next @mdneyazahmad?

@mdneyazahmad bump!

@mdneyazahmad

[KYC flow]: I can not navigate to this, but I have checked the code of this components. This also seems to be fixed as this also uses the updated Form component.

Here are the steps to navigate this flow.
Okay, I've gone through the thread, next steps would be. Since it's been a while we just need to re-run the audit on the flow/pages  again please share screen records of the same i.e. if all looks good we can confirm and close this one. Thanks
Cc: @thienlnam

@Santhosh-Sellavel thanks. I will update sometime today.

IOU
https://user-images.githubusercontent.com/77761491/216594629-a7a24703-7cb2-4b5f-8921-c928b3a37c46.mp4
https://user-images.githubusercontent.com/77761491/216594786-4034c1f7-62a1-467e-a365-45d1f55fbb08.mp4
https://user-images.githubusercontent.com/77761491/216596073-187239bf-1d58-4fc6-8061-37eb8146e446.mp4
KYC
https://user-images.githubusercontent.com/77761491/216594666-fe8a884c-6cd8-4e7f-b542-0baa9dd3fc66.mp4
New Room
https://user-images.githubusercontent.com/77761491/216594693-2ece72e1-85f0-4a67-886b-a7c74a828aee.mp4
Add debit card
https://user-images.githubusercontent.com/77761491/216594724-50d143d9-d4cf-4640-9271-cd4271ce7100.mp4
https://user-images.githubusercontent.com/77761491/216594906-05d2f488-43d7-435f-aa0d-1080ed7d599c.mp4
Set password
https://user-images.githubusercontent.com/77761491/216594741-c97ec38b-d969-4642-bcad-a863ac8f8973.mp4
cc: @Santhosh-Sellavel

@Santhosh-Sellavel this works fine. Let me know if you find any issues.

Sorry for the inconvenience, @mdneyazahmad seems accidentally missed this one. I'll update by Monday or sooner, seems most likely to do nothing here. I'll test and update.

@mdneyazahmad
Weird shouldn't the tab focus to the Next button?
https://user-images.githubusercontent.com/85645967/218585018-8b4ba81c-eab3-4472-b56d-66e9498e970c.mov

Ah, I just noticed the Next button is disabled 😄. @luacmartins should still keep this Next button disabled?

Bug:
IOU input amount should not be selected on focus using
https://user-images.githubusercontent.com/85645967/218586011-4f939eba-5416-4e26-9d10-bd57316a4070.mov
Focus is not visible on drop down
https://user-images.githubusercontent.com/85645967/218586733-83f6bde1-d462-4438-bf9f-613bc9cfbc43.mov

What's your thought on the other issue, @luacmartins?

Will continue testing other tomorrow!

IOU input amount should not be selected on focus using

This seems to be the standard behavior for inputs with values.
https://user-images.githubusercontent.com/22219519/218737361-be6921c6-0c45-499a-881a-c40f39eecca2.mov

Focus is not visible on the drop down error

I'm not sure that I understand this one - the focus seems to shift from one input to the other correctly. Could you please clarify?

Focus is not visible on the drop down error

I'm not sure that I understand this one - the focus seems to shift from one input to the other correctly. Could you please clarify?

Yes it seems to be shifting, but not visible when the input (drop down) is in an error state

KYC
https://user-images.githubusercontent.com/85645967/218895034-b815e348-75ed-4128-a311-8cb0908aa0ac.mov
Debit
https://user-images.githubusercontent.com/85645967/218895012-845c1f93-35fb-4d36-96e5-a7a8e529517d.mov

New password form
Pressing Enter should error instead goes to home page
https://user-images.githubusercontent.com/85645967/218895656-69cbb830-ace1-4b45-9504-9532aaa8c598.mov

@luacmartins

IOU input amount should not be selected on focus using

This seems to be the standard behavior for inputs with values.

We are good then!

Also  any update on this

This is a bug right https://github.com/Expensify/App/issues/7917#issuecomment-1430589582?

Focus is not visible on the drop down error

Got it! Hmm that seems to be the case in the pages that use Form too. So if we were to fix it we would have to fix the Form component itself, which I think is outside the scope for this issue.

This is a bug right https://github.com/Expensify/App/issues/7917#issuecomment-1430589582?

Seems like it, although I can't reproduce. Would you mind listing the steps?

@luacmartins

Signup a new account using email
Open magic received from mail
Enter invalid password or don't type anything. Now Press Enter

Pressing Enter should error, instead goes to home page

Thanks! I was able to reproduce and yes, that's a bug!

Do we have a new issue for that one yet? If not, we can get the BugZero person assigned to create one. cc @dylanexpensify

@Santhosh-Sellavel Can you please confirm that this issue happens on PR, as I can see that when you open the link it redirects to https://new.expensify.com/setpassword/uuid.
You can follow this steps:

Signup a new account using email
Copy the link received in email.
Replace new.expensify.com as  https://new.expensify.com/setpassword/uuid -> http://localhost/setpassword/uuid
Now test

@mdneyazahmad
Ah thanks, I believe this one comes with in the scope of this audit. We should fix it here.
cc: @luacmartins @thienlnam

I agree. That's within the audit scope.

I am sorry for being late here. I was ooo. @Santhosh-Sellavel I have drafted the PR. I need some help with the test in native device and desktop. How can open the url in those platform?

@Santhosh-Sellavel I have marked that PR ready for review, and posted in slack channel for help here about opening the url in desktop and native devices.

📣 @mdneyazahmad! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.

Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~011922ae9ff280b160

✅ Contributor details stored successfully. Thank you for contributing to Expensify!

Reviewing label has been removed, please complete the "BugZero Checklist".

The solution for this issue has been :rocket: deployed to production :rocket: in version 1.2.82-4 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:

https://github.com/Expensify/App/pull/15240

If no regressions arise, payment will be issued on 2023-03-20. :confetti_ball:
After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

[ ] External issue reporter
[ ] Contributor that fixed the issue
[ ] Contributor+ that helped on the issue and/or PR

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

Merged PR within 3 business days of assignment - 50% bonus
Merged PR more than 9 business days after assignment - 50% penalty

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ] [@Santhosh-Sellavel / @thienlnam] The PR that introduced the bug has been identified. Link to the PR:
[ ] [@Santhosh-Sellavel / @thienlnam] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment:
[ ] [@Santhosh-Sellavel / @thienlnam] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion:
[ ] [@dylanexpensify] Determine if we should create a regression test for the bug.
[ ] [@Santhosh-Sellavel] If we decide to create a regression test for the bug, please propose the regression test steps to the appropriate location to ensure the same bug will not reach production again.
[ ] [@dylanexpensify] Review the proposed regression test steps and location.
[ ] [@dylanexpensify] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

I think we don't need a BZ Checklist. It's all N/A for this one!
@dylanexpensify
cc: @thienlnam

@thienlnam can you confirm payout amounts of $2000? As well, is there a time bonus here?

Looks correct, and I believe this issue was created way back before we even added time bonuses so let's just do normal payouts for this issue

@Santhosh-Sellavel @mdneyazahmad please apply here!

Done, thanks!

offers sent!

Accepted thanks @dylanexpensify!

Alright, we're all sorted here! Thanks for playing!


Revert "[NPM] Allow safely overriding connections check interval"

Reverts DataDog/datadog-agent#31044
This change actually changed the type of the config which will make testing changing the interval difficult depending on which version is running. I'm going to rework it so it's still passed as an integer in seconds (old) instead of a duration (new)

/merge


Update verify.yml

Verification update correction
is this valid? feedback welcomed.. thanks!
<-s>

is this valid? feedback welcomed.. thanks!

This looks like an empty PR. What change are you trying to accomplish?

Feel free to reopen if there are going to be changes to propose.


Add Terraform Cloud/Enterprise exporter.

Hi @RichiH,
Could you please review this exporter and see if it meets the requirements?
Thanks.

@iorubs Can you provide a sample of the output?

@hdost here's the sample output:
# HELP tf_exporter_collector_duration_seconds Collector time duration.
# TYPE tf_exporter_collector_duration_seconds gauge
tf_exporter_collector_duration_seconds{collector="collect.organizations"} 0.939581875
tf_exporter_collector_duration_seconds{collector="collect.workspaces"} 0.76836625
# HELP tf_exporter_last_scrape_error Whether the last scrape of metrics from Terraform API resulted in an error (1 for error, 0 for success).
# TYPE tf_exporter_last_scrape_error gauge
tf_exporter_last_scrape_error 0
# HELP tf_exporter_scrapes_total Total number of times the Terraform API was scraped for metrics.
# TYPE tf_exporter_scrapes_total counter
tf_exporter_scrapes_total 3
# HELP tf_organizations_info Information about existing organizations
# TYPE tf_organizations_info gauge
tf_organizations_info{created_at="2020-12-18 00:15:39.768 +0000 UTC",email="ruben.vasconcelos3@mail.dcu.ie",external_id="org-MkXS4Ct7RgeU2fjb",name="iorubs",owners_team_saml_role_id="",saml_enabled="false",two_factor_conformant="false"} 1
tf_organizations_info{created_at="2021-02-06 17:31:17.278 +0000 UTC",email="ruben.vasconcelos3@mail.dcu.ie",external_id="org-JDsFua64naveuyoH",name="iorubs-dev",owners_team_saml_role_id="",saml_enabled="false",two_factor_conformant="false"} 1
# HELP tf_workspaces_info Information about existing workspaces
# TYPE tf_workspaces_info gauge
tf_workspaces_info{created_at="2020-12-18 00:17:06.348 +0000 UTC",current_run="run-ABNAoY2UnU1TTtYk",current_run_created_at="2021-01-19 15:23:37.118 +0000 UTC",current_run_status="applied",environment="default",id="ws-r5YTHZyVUdaJFR4w",name="dev",organization="iorubs",terraform_version="0.14.3"} 1
tf_workspaces_info{created_at="2021-02-06 22:41:21.416 +0000 UTC",current_run="run-r73P6CGE8iatHBXY",current_run_created_at="2021-02-16 17:44:42.021 +0000 UTC",current_run_status="errored",environment="default",id="ws-6e7eHxjoLR5LZPpu",name="stg",organization="iorubs",terraform_version="0.14.6"} 1
tf_workspaces_info{created_at="2021-02-16 16:35:47.662 +0000 UTC",current_run="run-vSntsgUSpEWgm1oW",current_run_created_at="2021-02-16 17:49:08.326 +0000 UTC",current_run_status="applied",environment="default",id="ws-FX2W9pVxYypR3G8i",name="dev",organization="iorubs-dev",terraform_version="0.14.6"} 1
tf_workspaces_info{created_at="2021-02-16 17:30:23.202 +0000 UTC",current_run="na",current_run_created_at="na",current_run_status="na",environment="default",id="ws-d1rZgzz5zqVSDFm6",name="prod",organization="iorubs",terraform_version="0.14.6"} 1
tf_workspaces_info{created_at="2021-02-16 17:49:34.62 +0000 UTC",current_run="run-6KWmJLnhBrsbTQNa",current_run_created_at="2021-02-16 17:50:38.12 +0000 UTC",current_run_status="planned_and_finished",environment="default",id="ws-N2addebChqWaXj5p",name="prod",organization="iorubs-dev",terraform_version="0.14.6"} 1

Thanks.

@iorubs Can you provide a sample of the output?

@hdost here's the sample output:
# HELP tf_exporter_collector_duration_seconds Collector time duration.
# TYPE tf_exporter_collector_duration_seconds gauge
tf_exporter_collector_duration_seconds{collector="collect.organizations"} 0.939581875
tf_exporter_collector_duration_seconds{collector="collect.workspaces"} 0.76836625
# HELP tf_exporter_last_scrape_error Whether the last scrape of metrics from Terraform API resulted in an error (1 for error, 0 for success).
# TYPE tf_exporter_last_scrape_error gauge
tf_exporter_last_scrape_error 0
# HELP tf_exporter_scrapes_total Total number of times the Terraform API was scraped for metrics.
# TYPE tf_exporter_scrapes_total counter
tf_exporter_scrapes_total 3
# HELP tf_organizations_info Information about existing organizations
# TYPE tf_organizations_info gauge
tf_organizations_info{created_at="2020-12-18 00:15:39.768 +0000 UTC",email="ruben.vasconcelos3@mail.dcu.ie",external_id="org-MkXS4Ct7RgeU2fjb",name="iorubs",owners_team_saml_role_id="",saml_enabled="false",two_factor_conformant="false"} 1
tf_organizations_info{created_at="2021-02-06 17:31:17.278 +0000 UTC",email="ruben.vasconcelos3@mail.dcu.ie",external_id="org-JDsFua64naveuyoH",name="iorubs-dev",owners_team_saml_role_id="",saml_enabled="false",two_factor_conformant="false"} 1
# HELP tf_workspaces_info Information about existing workspaces
# TYPE tf_workspaces_info gauge
tf_workspaces_info{created_at="2020-12-18 00:17:06.348 +0000 UTC",current_run="run-ABNAoY2UnU1TTtYk",current_run_created_at="2021-01-19 15:23:37.118 +0000 UTC",current_run_status="applied",environment="default",id="ws-r5YTHZyVUdaJFR4w",name="dev",organization="iorubs",terraform_version="0.14.3"} 1
tf_workspaces_info{created_at="2021-02-06 22:41:21.416 +0000 UTC",current_run="run-r73P6CGE8iatHBXY",current_run_created_at="2021-02-16 17:44:42.021 +0000 UTC",current_run_status="errored",environment="default",id="ws-6e7eHxjoLR5LZPpu",name="stg",organization="iorubs",terraform_version="0.14.6"} 1
tf_workspaces_info{created_at="2021-02-16 16:35:47.662 +0000 UTC",current_run="run-vSntsgUSpEWgm1oW",current_run_created_at="2021-02-16 17:49:08.326 +0000 UTC",current_run_status="applied",environment="default",id="ws-FX2W9pVxYypR3G8i",name="dev",organization="iorubs-dev",terraform_version="0.14.6"} 1
tf_workspaces_info{created_at="2021-02-16 17:30:23.202 +0000 UTC",current_run="na",current_run_created_at="na",current_run_status="na",environment="default",id="ws-d1rZgzz5zqVSDFm6",name="prod",organization="iorubs",terraform_version="0.14.6"} 1
tf_workspaces_info{created_at="2021-02-16 17:49:34.62 +0000 UTC",current_run="run-6KWmJLnhBrsbTQNa",current_run_created_at="2021-02-16 17:50:38.12 +0000 UTC",current_run_status="planned_and_finished",environment="default",id="ws-N2addebChqWaXj5p",name="prod",organization="iorubs-dev",terraform_version="0.14.6"} 1

Thanks.


install gitlab error [app store]

rancher 2.0 install gitlab-ce/ee
report error:
CreateContainerConfigError: failed to create subPath directory for volumeMount "data" of container "gitlab-ee-postgresql"

Can you supply more info on your setup (basically copy paste from this and fill in: https://raw.githubusercontent.com/rancher/rancher/master/.github/ISSUE_TEMPLATE.md)


Issues are created regardless of result

The readme states:

issues will be created when the action finds link problems.

That's not currently correct.
I ran the suggested workflow and got this issue:

https://github.com/refined-github/refined-github/issues/5114

I fixed the links and then a new issue was opened, empty:

https://github.com/refined-github/refined-github/issues/5116

For this to happen, lychee-action should probably export a variable that I can then pass to the next action. For example:
       - uses<EMAIL_ADDRESS>         id: lychee
         with:
           args: --verbose --no-progress **/*.md **/*.html
         env:
           GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
       - name: Create Issue From File
         if: steps.lychee.outputs.errors
         uses: peter-evans/create-issue-from-file@v3
         with:
           title: Link Checker Report
           content-filepath: ./lychee/out.md

Looking at the second run, I can see
lychee --format markdown --output /tmp/lychee/out.md --verbose --no-progress --exclude-file 'safari/Shared (App)/Base.lproj/Main.html' --exclude-file 'distribution/options.html
' '**/*.md' '**/*.html' '**/*.css' '**/*.ts' '**/*.tsx'

--exclude-file takes multiple arguments, so it gets confused about where the exclude files end and the grok inputs begin. You have to separate the two with --. At least that's what I think.
Can you try
lychee --format markdown --output /tmp/lychee/out.md --verbose --no-progress --exclude-file 'safari/Shared (App)/Base.lproj/Main.html' --exclude-file 'distribution/options.html
' -- '**/*.md' '**/*.html' '**/*.css' '**/*.ts' '**/*.tsx'

instead?
This should then not create an issue if all the files are valid.
If we can somehow make this a little more ergonomic I'd be happy for PRs or suggestions.

@fregante did you get a chance to try it?

No luck:
a04da24 (#5115)
https://github.com/refined-github/refined-github/issues/5145
https://github.com/refined-github/refined-github/runs/4409379395?check_suite_focus=true

https://github.com/lycheeverse/lychee-action/blob/3ab9eb6a647f695a9db7060ec11ceb81c649a751/entrypoint.sh#L27
you can use that exit_code output to circumvent this, like
- name: Create issue from report file
    if: ${{ steps.lychee.outputs.exit_code != 0 }}

@micalevisk thanks for the support. In that case the issue was the way arguments were passed to lychee: https://github.com/refined-github/refined-github/pull/5115#issuecomment-986066164

This is more of a lychee issue rather than something we could fix in the action itself.
So I'm moving this over here: #https://github.com/lycheeverse/lychee/issues/418.


Correct documentation for tapActivity() under Logging model events

The current code found in the documentation for tapActivity() doesn't appear to be correct. https://docs.spatie.be/laravel-activitylog/v3/advanced-usage/logging-model-events/#tap-activity-before-logged-from-event
public function tapActivity(Activity $activity, string $eventName)
{
    $activity->comment_count = $this->comments()->count();
}

This results in a column not found exception. I was able to correct the issue by using this code:
public function tapActivity(Activity $activity, string $eventName)
{
    $activity->properties = $activity->properties->put('comment_count', $this->comments()->count());
}

Thank you @tomfortmuller
I had issues with the documentation as well and your example works!


Widget re-renders on HTMX cached page, duplicating content

load a page, x-widget will render a component successfully. If you click a link with https://htmx.org/docs/#boosting (or any htmx request really, but boosting is easiest to imagine) applied to it, htmx will cache the page you're currently on and move forward (https://htmx.org/docs/#history). If you then hit back, htmx restores the cache and then x-widget renders the component. This will cause a nested effect with two renders of the component.
Here's an example of the first navigation or loading the page directly

And after clicking a boosted link and hitting back:

I know I hit you with a bunch of bugs all at once, if you provide some high level guidance on how you'd like me to take a shot at them I"m happy to take a crack.

Interesting. Wouldn't this behaviour happen with plain old alpine too?

Yeah possibly - I'll do some experimentation over the weekend


Tested Activity Functionality.

Description
Tested Activity Functionality.
Fixes #142
Status
READY
Type of change

Bug Fix.

How Has This Been Tested?
-The tests passed.
Checklist:

[ ] I have made corresponding changes to the documentation (if applicable)
[x] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes

Aguardando revisão.  @luizguilherme5  @lucaaas

Linting não está correto, usar o comando 'flake8' e corrigi-los

@lucianosz7 @RomuloSouza PR with conflicts.


feat: add math/base/special/lnf

Description

What is the purpose of this pull request?

This pull request:

adds math/base/special/lnf, which is the single-precision version for math/base/special/ln.

float stdlib_base_lnf( const float x )

I have referred the FreeBSD implementation for logf: https://svnweb.freebsd.org/base/release/12.2.0/lib/msun/src/e_logf.c?revision=367086&view=markup
Related Issues

Does this pull request have any related issues?

None.
Questions

Any questions for reviewers of this pull request?

No.
Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

No.
Checklist

Please ensure the following tasks are completed before submitting this pull request.

[x] Read, understood, and followed the contributing guidelines.

@stdlib-js/reviewers

@kgryte I've made a PR incorporating these changes at #2356.


[SDK] Feature: Adds tsdoc parsing and other eslint rules

PR-Codex overview
This PR focuses on updating TypeScript types, enhancing ESLint rules, and making various dependency updates across the project.
Detailed summary

Changed parameter name from uri to _uri in onDisplayUri callback in packages/thirdweb/src/wallets/wallet-connect/types.ts.
Modified WalletCreationOptions type definition in packages/thirdweb/src/wallets/wallet-types.ts.
Updated listeners parameter name from event to _event in packages/thirdweb/src/wallets/wallet-connect/receiver/receiver.test.ts.
Added new ESLint rules in packages/thirdweb/.eslintrc.cjs for better code practices.
Removed several tags from packages/thirdweb/tsdoc.json and added @example tag.
Updated various package versions in package.json and pnpm-lock.yaml.

The following files were skipped due to too many changes: pnpm-lock.yaml

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Merge activity

Dec 6, 7:26 PM EST: The merge label 'merge-queue' was detected. This PR will be added to the Graphite merge queue once it meets the requirements.


Header avatars small visual tweak

[ ] Would be great to have same space in between top, bottom and left/right sides as shown on the screen above.
[ ] For profiles with avatar on right side (like eSteem on the screenshot) we could also use right text alignment

Fixed


Hotfix release for azure-cosmos and azure-cosmos-spark

API change check
API changes are not detected in this pull request.


Have TabNine delegate requests for a lanaguage server

TabNine can launch a language server for semantic completion. But language servers do much more than mere completion - they provide linting, code navigation, documentation, code actions etc.
If I launch a language server I want access to all these things, and many LSP clients provide them, but if TabNine is the one launching the server I can only use it for completion - and nothing else.
Is it possible to have TabNine simply delegate messages from the client to the language server and from the language server to the client? If it gets completion requests/responses it does its magic, but everything else it should just let pass through. That way I can just set my LSP client to launch TabNine and get completion from TabNine+language server and everything else from the language server.

Why can't you use your LSP client and TabNine at the same time? i.e. run your language server and TabNine as separate processes that aren't aware of each other?

Some language servers which I won't mention here can get pretty heavy and quite intrusive. If my LSP client is going to run one instance of that server, and TabNine is going to run another instance to get semantic completions, that's two heavy servers that need to index the entire project. And if one said servers decide they need change the code (e.g. - add an import statement when you complete something that wasn't previously imported) cause ensures.

Makes sense. Seems related to https://github.com/zxqfl/tabnine-vscode/issues/13 -- might want to implement it by having TabNine connect to an existing language server

Maybe if you add command line flags for TabNine to connect to the language server, that will override the ones set in the TOML configuration file, the LSP client will be able to set them to redirect TabNine to the language server it already runs?

Makes sense. Seems related to zxqfl/tabnine-vscode#13 -- might want to implement it by having TabNine connect to an existing language server

How would one configure TabNine to connect to an existing LS?
I'm seeing 32 beam processes for 4 open files in neovim

and I'm pretty sure I only need one.


Add tail recursion optimization

This issue was originally filed by<EMAIL_ADDRESS>
Tailrec optimization is a well-known feature of functional languages.
I propose to add support for it in dart.

Since the Dart VM will not be going into browsers, tail-call elimination is no longer a compelling feature to enable functional languages on the web. Instead, Dart has to be able to be compiled to efficient JS, and tail-call elimination makes that harder.
There are lots of other pros and cons to TCO, so that's not a comprehensive explanation as to why, but the result is that it's not something we plan to support in Dart at this time.

Since the Dart VM will not be going into browsers, tail-call elimination is no longer a compelling feature to enable functional languages on the web.

What about now, when Dart is used for Flutter?

We still strongly support Dart on the web, so we still need to be able to target JS which does not reliably do tail call elimination.

We still strongly support Dart on the web, so we still need to be able to target JS which does not reliably do tail call elimination.

Hopefully Dart will have equal or better support for Flutter soon (I mean generally, not only specific to  tail call elimination), if not on VM then at least on AOT first.

Hopefully Dart will have equal or better support for Flutter soon (I mean generally, not only specific to tail call elimination), if not on VM then at least on AOT first.

One of the value propositions for Dart is that users can share code and libraries across platforms. If we only support TCO on the VM, then any library that relies on that can't be used on the web. That's a very large downside for a feature that doesn't actually add much value. Most code that you can write using TCO can usually trivially be converted to equivalent code using a loop.
Compatibility provides more real value than TCO does.

In Kotlin case, it supports compile to multiple targets, but TCO is available in VM only (i.e. not JS)

Even then, it only supports TCO on explicitly-marked singly-recursive functions. In other words, the ones that the compiler can transform into loops. Those are the exact cases where a user could write the loop themselves without any real loss in expressiveness.

Furthermore, ES6 seems to support TCO

[Almost no JS implementations actually support it](https://kangax.github.io/compat-table/es6/#test-proper_tail_calls_(tail_call_optimisation)).


#724 Flask upgrade

Description
These changes upgrade Flask to the newest stable version.  I have commented on changes required for proper functionality rather than just clean-up.  These include:

Altering when and how test databases are created
Removing the db_session fixture, which was causing errors that prevented running any unit tests.  This fixture generally gets replaced by the notify_db_session fixture.
Using the "load_instance" and "include_relationships" parameters in app/schemas.py.  Without these, model instances were not properly (de)serializing.  Jsonified responses would omit fields.
Removing failing test cases that are no longer valid after alterations in notifications-utils to how phone numbers are normalized

The team made the decision to "xfail" failing tests for routes that are not actually in use.  Future work will remove these routes and their associated tests.
Some common clean-up changes:

Replacing "sms", "letter", and "email" with the associated constants: SMS_TYPE, etc.
Replacing json.loads(response.get_text(...)) with resonse.get_json()
Sorting imports at the start of files
Removing the "format" string method from logging calls

#724
Type of change

[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)

How Has This Been Tested?
The branch has been deployed.

[x] All unit tests pass locally and in Github
[x] User-flows tests pass

Checklist

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] My changes generate no new warnings
[x] New and existing unit tests pass locally with my changes

I created new tickets for TODOs in this PR and referenced them herein.  I also rebased to master.

I opened #1134 to address the code scan issue for "requests without timeout."

These changes are currently undergoing testing in Perf.  I will rebranch and merge when everything passes QA.

Cris is deploying this branch to staging.  I will ask for reviews again, and then merge, when I have her seal of approval.


Package metadata needs to be version specific

The retrieval of additional package metadata in _create_package needs to be version specific
            self.package_metadata.get_package(package)

Requires updates to lib4package


isfinite(inf) raises FloatingPointError in vectorized functions

The following works as expected:
@nb.njit
def finite(x):
    return math.isfinite(x)

>>> finite(1.)
True
>>> finite(math.nan)
False
>>> finite(math.inf)
False

However, this vectorized version raises an exception when it receives inf:
@nb.vectorize
def finite(x):
    return math.isfinite(x)

>>> finite(1.)
True
>>> finite(math.nan)
False
>>> finite(math.inf)
FloatingPointError: invalid value encountered in finite

It is interesting to notice that the behavior changes depending on np.seterr() settings:
>>> np.seterr(all='raise')
>>> finite(math.inf)
FloatingPointError: invalid value encountered in finite [...]

>>> np.seterr(all='warn')
>>> finite(math.inf)
RuntimeWarning: invalid value encountered in finite [...]
False

>>> np.seterr(all='ignore')
>>> finite(math.inf)
False

The same happens in guvectorized functions.
I understand isfinite(inf) should never raise an exception or warning, according to the behavior of math.isfinite() or np.isfinite(), or its own behavior in the non-vectorized version.
Using Numba 0.60.0 and Python 3.10.12.

For example, when converting floating point values to integers, an alternative to checking isfinite() would be to catch the exception raised by int(nan) or int(inf), but int(inf) does not raise OverflowError (#6044).

Thanks for the report. I can reproduce similar behaviour with:
from numba import njit, vectorize
import math
import numpy as np

np.seterr(all='raise')

@njit
def finite(x):
    return math.isfinite(x)

finite(1.0)
finite(math.nan)
finite(math.inf)

@vectorize
def vectorize_finite(x):
    return math.isfinite(x)

vectorize_finite(1.0)
vectorize_finite(math.nan)
vectorize_finite(math.inf)

The implementation if is_finite (in numba/cpython/mathimpl.py) might be setting an error flag:
 56 def is_finite(builder, val):
 57     """
 58     Return a condition testing whether *val* is a finite.
 59     """
 60     # is_finite(x)  <=>  x - x != NaN
 61     val_minus_val = builder.fsub(val, val)
 62     return builder.fcmp_ordered('ord', val_minus_val, val_minus_val)

Newer llvm has https://llvm.org/docs/LangRef.html#llvm-is-fpclass-intrinsic

Also in LLVM 15: https://releases.llvm.org/15.0.0/docs/LangRef.html#llvm-is-fpclass-intrinsic


Fix/ListAllExternalMetrics change to return api-resource types

ListAllExternalMetrics change to return api-resource types, delete externalMetricsInfo code.
Checklist

[✓] Commits are signed with Developer Certificate of Origin (DCO - learn more)
[✓] Changelog has been updated and is aligned with our changelog requirements

Relates to #1797

@penghuazhou could you please tell me the rationale behind this change? I don't follow what is the actual improvement here.

/run-e2e

have some confirmation from upstream k8s about this.

I will get some confirmation from upstream k8s about this.

Any update on this?

This topic is being discussed in the upstream https://github.com/kubernetes-sigs/custom-metrics-apiserver/issues/146#issuecomment-1447876810

Closing this in favor of: https://github.com/kedacore/keda/pull/4473


Could you share the code that transforms ANIMAL-10N dataset to the needed structure?

Hi，thanks for your interesting work! I find the code in this repo need ANIMAL-10N images stored in folders by category,  while the original dataset is stored as bin files. Could you share the code that transforms ANIMAL-10N dataset to the needed structure?

You only need to put images belonging to the same class into the same folder. The structure of the folder should be:
./data/Animal10N/train/
├── 0
├── 1
├── 2
├── 3
├── 4
├── 5
├── 6
├── 7
├── 8
└── 9

and so as the test set.


Empty file generated on windows

go version go1.8 windows/amd64
Using the test case:
package main

import "gopkg.in/src-d/go-kallax.v1"

//go:generate kallax gen

type Foo struct {
        kallax.Model `table:"foos"`
        ID int64 `pk:""`
}

produces the full expected output on linux, but on windows only provides:
// IMPORTANT! This is auto generated code by https://github.com/src-d/go-kallax
// Please, do not touch the code below, and if you do, do it under your own
// risk. Take into account that all the code you write here will be completely
// erased from earth the next time you generate the kallax models.
package main

import (
        "fmt"

        "gopkg.in/src-d/go-kallax.v1/types"
)

var _ types.SQLType
var _ fmt.Formatter

type schema struct {
}

var Schema = &schema{}

What version of kallax are you using? You can find out by doing kallax version
On Mon, 15 May 2017 at 13:04, Alex Macleod <notifications<EMAIL_ADDRESS>wrote:
go version go1.8 windows/amd64
Using the test case:
package main
import "gopkg.in/src-d/go-kallax.v1http://gopkg.in/src-d/go-kallax.v1"
//go:generate kallax gen
type Foo struct {
kallax.Model table:"foos"
ID int64 pk:""
}
produces the full expected output on linux, but on windows only provides:
// IMPORTANT! This is auto generated code by https://github.com/src-d/go-kallax
// Please, do not touch the code below, and if you do, do it under your own
// risk. Take into account that all the code you write here will be completely
// erased from earth the next time you generate the kallax models.
package main
import (
"fmt"
    "gopkg.in/src-d/go-kallax.v1/types<http://gopkg.in/src-d/go-kallax.v1/types>"

)
var _ types.SQLType
var _ fmt.Formatter
type schema struct {
}
var Schema = &schema{}
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHubhttps://github.com/src-d/go-kallax/issues/157, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ABQFF20FeztOg2PgzaUXX6YlIGyETwpXks5r6DEmgaJpZM4Na-04.

kallax version 1.2.1

Interesting find, when I have kallax files inside vendor/ folder, I get "empty" kallax.go too, but when I delete kallax from vendor/ I get normal kallax.go file. Maybe there's problem somewhere.
go version go1.8.1 linux/amd64
kallax version 1.2.1

Ah odd, that happens to me on linux also, but with windows it's empty with either vendored or unvendored

I believe the issue is in the generator package, processFields calls typeName, the problem being removeGoPath doesn't seem to get along with vendored files or windows

Tomorrow I'll take a look at it, but removeGoPath should work fine with windows according to the tests (https://github.com/src-d/go-kallax/blob/3866e70ad42c928feb35e492b0ed8d0ad97c94e9/generator/processor_test.go#L429-L467)

@m-kad by having kallax files on vendor folder you mean files with models or the kallax.go file itself?

I use Glide as my dependency manager. When I do glide get gopkg.in/src-d/go-kallax.v1 and extra dependencies, it pulls kallax dependency (and other) in my projects vendor/ directory.
In my project folder I have model/ directory where I have something like model.go and kallax.go would be generated in model/ directory anyway, it doesn't matter if I have kallax in vendor or not.
To run go generate ./... I need to have kallax installed in my system so I need to run go get -u gopkg.in/src-d/go-kallax.v1/...
Now starts problems, when I run go generate ./... I get response
Package: model Package: tests
And empty kallax.go file Package: tests is picked up from vendors kallax package. (tests/common.go)
When I run go generate model/model.go  ja get Package: model and still an empty kallax.go file.
Only way to get generated kallax.go is to manually delete kallax from vendor/ directory (program still works because I have kallax installed in $GOPATH

Yep, go generate does not ignore vendor folder. Use go generate $(go list ./... | grep vendor) instead.
Ok, so the problem seems to be with kallax vendored itself as a dependency. Just as a note, you don't need to vendor kallax with glide, since it's already versioned with gopkg.in and changes in v1.x will not be breaking. But, anyway, I will take a look into this, which is a totally separate issue from the windows one. I will open another issue just for this problem.

@Alexendoo can you try now with version 1.2.4?

Still empty on 1.2.4, if it helps here's go env:
set GOARCH=amd64
set GOBIN=
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=W:\Go\
set GORACE=
set GOROOT=C:\Go
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\Alex\AppData\Local\Temp\go-build960861963=/tmp/go-build -gno-record-gcc-switches
set CXX=g++
set CGO_ENABLED=1
set PKG_CONFIG=pkg-config
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2

Can you try now with v1.2.5?

Still empty on v1.2.5

I added the sample you provided to our test suite and the CI reports it's all ok (https://github.com/src-d/go-kallax/pull/185). Can you make a pull request with an example that makes it fail? Otherwise we can't reproduce this.

Closing due to inactivity. Other windows users seem to be able to generated as does the CI. @Alexendoo ping me if you want me to reopen.


Typings for Amazon WAF CAPTCHA request/response incorrect

As seen in the 2Captcha documentation for Amazon WAF CAPTCHAs, challengeScript and captchaScript are missing in the type definition paramsAmazonWAF entirely:
https://github.com/2captcha/2captcha-javascript/blob/40bc2170921d29b56af1430547ab87efc2550e0c/src/structs/2captcha.ts#L142-L152
Also the response typing is incorrect. For Amazon WAF it's actually structured like this:
interface CaptchaAnswerAmazonWAF {
  data: {
    captcha_voucher: string,
    existing_token: string
  },
  id: string
};

But it's implemented like this (data is NOT a string!!!):
https://github.com/2captcha/2captcha-javascript/blob/40bc2170921d29b56af1430547ab87efc2550e0c/src/structs/2captcha.ts#L232-L237
I suspect many more typings will be incorrect as well.

challengeScript and captchaScript are missing in the type definition paramsAmazonWAF entirely

2captcha API has two versions v1 and v2, this repository uses API v1. The correct parameter names for API v1 are described here https://2captcha.com/2captcha-api#amazon-waf-captcha. The link you provided will not be correct, as it describes API v2.
@alexanderroidl  Can you create a PR with the addition of challenge_script and captcha_script params for paramsAmazonWAF.
Screenshot - Request body example for send Amazon WAF to API v1:

Thank you for the hint @dzmitry-duboyski!
I will be happy to create a PR but only if you actually approve it once it meets the project's needs. I do not want to code, have my PR closed and have the code re-done by somebody else.


Speed of training

Hello!  Thanks for making this library.  I was wondering if there was a way to speed up training a bit, as sometimes when I have different types of data going in, it can take a few minutes to hours to train...  like maybe saving the data, and then "appending" new data as it comes in?  (I'm fairly new to neural networks.)  Thanks!

Hello, actually I noticed this problem there is little time testing the recognition. I have not had time to look for the solution . I will look into the problem quickly . Thank you very much for your return :-)

Great, thanks!

I did some training optimizations. They are available in version 0.8.2 . I do not think the problem is fully resolved but it should still be felt.


Add AppsAndFeaturesEntries in PowerShell Preview <IP_ADDRESS>

Related to https://github.com/microsoft/winget-pkgs/pull/123657#pullrequestreview-1696907836

Microsoft Reviewers: Open in CodeFlow

Hi @anamnavi,
Do you approve of this change?


When does this get obsoleted?

Fantastic script... using happily... but I'm wondering if/when we get similar functionality in core? Are there any issues or PRs I should be watching? Thanks!

There are 2 docker issues to track for 'better docker networking'. You can see here:
https://github.com/dreamcat4/docker-images/blob/master/pipework/0. Introduction.md#future


Validate on entire validation_data if Dataset has length less than validation_steps

Click to expand!
Issue Type
Feature Request
Source
source
Tensorflow Version
2.12.0
Custom Code
No
OS Platform and Distribution
No response
Mobile device
No response
Python version
No response
Bazel version
No response
GCC/Compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current Behaviour?
We provide a `tf.data.Dataset` and `validation_steps` to `Model.fit`. The size of our Dataset varies may vary across experiments. If `validation_steps <= len(Dataset)`, then everything works as expected. However, if `validation_steps > len(Dataset)`, validation is only performed _once_ (at the first epoch). In this case, I'd expect that validation is simply performed across the entire dataset every epoch.

A hacky solution around this problem is to use `.repeat()`, but that is a poor solution since it will perform duplicate (unnecessary) evaluations on the same samples.

Standalone code to reproduce the issue
Simply call `Model.fit` with `validation_steps > len(Dataset)`

Relevant log output
No response

@mbarnes13
In order to expedite the trouble-shooting process, please provide a code snippet to reproduce the issue reported here. It will help us to analyze the issue. Thank you!

@sushreebarsa The main use case is to validate on max(max_samples, size(validation_dataset)). This is useful in settings where the validation dataset varies across runs, and we want to limit validation on excessively large datasets.

When validation_steps' > len(Dataset) as per the existing implementation where it runs validation for first epoch is proper. Otherwise, it would increase the evaluation time when the validation is performed on each epoch for the above scenario.

Hi Sachin. The first epoch is correct. The issue is that on subsequent epochs:
If validation_steps <= len(dataset): Restarts validation at beginning of dataset.
If validation_steps > len(dataset): Performs no validation. This is the unexpected behavior. It should restart at the beginning of the dataset.

Hello @mbarnes13, yes I was able to repro this - would you be willing to take a look at the issue and contribute a fix? I think it's fair that we continue to have validation in later epochs even if it runs out in the first epoch. We would appreciate a contribution.

Hi @rchao. Unfortunately I don't have the cycles to contribute a fix right now. FYI, I'm also FTE at Google. Mostly using this to track the issue.

Thanks @mbarnes13! In that case let's keep this issue open for contributions.

Great to see this issue being discussed! I would like to contribute to this project and work on fixing this issue. Please let me know how I can get started and what tasks I can take up. Looking forward to contributing to the project!

Thanks @Aryan-Mishra24! I would start with reproducing it and look into the code to find why the validation is only done in the first epoch, and make changes in the code to fix that, with a unit test added.

Hey, I would like to pick this up! However, shout if you're already working on it Aryan (its been over a month so I assume not)

When reproducing this, you see a warning on the first iteration but not on the second.
Epoch 1/2
1865/1875 [============================>.] - ETA: 0s - loss: 0.0771 - accuracy: 0.9757WARNING:tensorflow:Your input ran out of data; interrupting training. Make sure that your dataset or generator can generate at least `steps_per_epoch * epochs` batches (in this case, 60001 batches). You may need to use the repeat() function when building your dataset.
1875/1875 [==============================] - 29s 15ms/step - loss: 0.0772 - accuracy: 0.9756 - val_loss: 0.0820 - val_accuracy: 0.9753
Epoch 2/2
1875/1875 [==============================] - 9s 5ms/step - loss: 0.0679 - accuracy: 0.9783
<keras.callbacks.History at 0x7f2a405fd400>

Searching for the warning, we see it is raised in 3 different places (link)
Next steps:

Figure out which warning is raised the first epoch.
Work out why the warning is not surfacing in the second epoch
add extra validation

@rchao @sushreebarsa I would like to contribute a fix. steps_per_epoch is being inferred by DataHandler.infer_steps method. If a user provides a value to the arg steps_per_epoch/validation_steps it is simply returned by the current method implementation.
If step_size > len(dataset) then this line next(iterator)  will throw StopIteration error which is causing DataHandler._insufficient_data to set to True and the training/validation stops.
To solve this, clipping the inferred step value from DataHandler.infer_steps to maximum step size possible if it exceeds, is needed. Is the fix in-line with the intended functioning of the engine?

Hi,
Thank you for opening this issue. Since this issue has been open for a long time, the code/debug information for this issue may not be relevant with the current state of the code base.
The Tensorflow team is constantly improving the framework by fixing bugs and adding new features. We suggest you try the latest TensorFlow version with the latest compatible hardware configuration which could potentially resolve the issue. If you are still facing the issue, please create a new GitHub issue with your latest findings, with all the debugging information which could help us investigate.
Please follow the release notes to stay up to date with the latest developments which are happening in the Tensorflow space.


🎓 Improvements to handling remote doi citations

Recently doi.org started returning 403s when building myst sites on CI - this means citations from DOI links do not resolve.
This PR makes a few changes to help get around this issue:

First, in addition to fetching dois from doi.org, we also try handle.net, the underlying service that serves dois. This doesn't work for everything, e.g. short dois do not work, but it is an easy way to provide a fallback for many cases.
Also, before fetching dois from the web, myst will now look at bibtex files to see if there are any matching dois on existing references.
Finally, you may now call myst build --doi-bib to write all doi citations to a bib file. Users may build their site locally, then invoke this command and use the resulting bib file for CI builds.

Making CI more stable is always a wonderful PR to see, thanks @fwkoch.
Something to think about here -- have we given much thought into using CSL-JSON as our canonical bib format, rather than using lossy Bibtex? It wouldn't likely be in this PR that we made that change, though.

@agoose77 - ah, yeah, that would be nice, allow reading CSL-JSON from file. That would help out for this issue: https://github.com/executablebooks/mystmd/issues/1284
We would still be in trouble for latex export with bibtex, but in the case of writing the DOI to file for more stable consumption during site builds, CSL-JSON would be nice.
I agree this is a separate PR - this would get into the "supported myst file extensions" that loadFile supports. I guess add '.json' as an allowed extension and try to load as CSL-JSON, and quietly ignore if it ends up being other json? Seems relatively straightforward to add.

Reviewed this with @fwkoch now, other than a few docs I think this is good to go. 🚀

This is currently impacting all scipy proceedings builds for the automated checking where doi.org is not accepting requests from github actions, see:

https://github.com/scipy-conference/scipy_proceedings/issues/935

It's great to see this quick turnaround, good job folks :-)


Taetse/fast compression

What does this PR do?

Motivation

More

[ ] Added/updated tests
[ ] Added/updated documentation

Additional Notes

good job, few todos below. Also please bump to latest (1.17.9) of the zstd lib, and do a proper rebase of this onto the v3.1 branch rather than merge-commit.

The zstd lib is already on latest version due to traefik using it as well


Update credentials crate to Rust 2018 edition.

Please help keep the CHANGELOG up to date by providing a one sentence summary of your change:
Move credentials crate to Rust 2018.
I need to poke at a couple tests that got a different tag on them to ensure they still run, but here's a start! 🎉  cargo fix --edition on Rust 1.33.0 worked well.

thanks for starting to do this incrementally.


fix: #5 by changing UpperFirst.transform logic

No longer crashes when a match is never found (such as if the user changed ChangeCaseConfig.stripPatterns)

Added tests to ensure Capital & UpperFirst are working as expected now.
Specifically the crash is tested here

This is released in version 2.1.0


how to know if a file is open (or lfs_file_t object in use) ?

Situation.
I have
lfs_file_t file;
I try to open file lfs_file_open(&lfs, &file, filename, LFS_O_RDONLY); and file was used for work with file which was not previously closed. In this case the program freezes in lfs_file_open at
LFS_ASSERT(!lfs_mlist_isopen(lfs->mlist, (struct lfs_mlist*)file));
Is it possible to know is file previously used and is already opened to close it ?

to

error: 'LFS_F_OPENED' undeclared (first use in this function); did you mean 'LFS_F_ERRED'?

Ah sorry that flag must have got dropped at some point. You could make the lfs_mlist_isopen() function public and call it directly I guess. Either that or track an extra variable when you open/close a file yourself

Hi @glory-man, to add to @Xenoamor's answer, calling lfs_file_open on the same file twice without lfs_file_close is an error. The assert is a convenience to point this out when debug is enabled.
Is it possible to track if the file is open with an extra variable?

maybe， I means ，make a function to check if the file handle is avaliable.
and in lfs_file_open , check if  the file is already opened with the correct mode. while not , reopen in OR mode.


In place modification of arrays doesn't work

Using iadd/sub/mult..._ on arrays doesn't work. An explicit for loop does:
#pythran export g(float[:])
def g(vector):
    total = vector.sum()
    vector /= total
    return total

#pythran export g2(float[:])
def g2(vector):
    total = vector.sum()
    for i in range(vector.shape[0]):
        vector[i] = vector[i] / total
    return total

import numpy as np
import a
vector = np.random.random(10)**2
print(vector.max())
a.g(vector)
print(vector.max()) # Unchanged

a.g2(vector)
print(vector.max()) # Changed

Note that:
#pythran export g(float[:])
def g(vector):
    total = vector.sum()
    vector /= total
    return total, vector.sum()

Returns the correct values, but vector is still untouched.

I can reproduce the bug. amusingly, it does not trigger for the + operator.


0.3.0 Update is breaking our production branch

npm ERR! notarget No compatible version found<EMAIL_ADDRESS>npm ERR! notarget Valid install targets:
npm ERR! notarget 0.1.0, 0.0.1
├─┬<EMAIL_ADDRESS>│ └──<EMAIL_ADDRESS>Seems to build now..

did you understand what it was? I had the same issue on travis but only with node8/npm5

Since it fixed itself, it was, I think (not 100% sure), because ajv was requiring  json-schema-traverse 0.3.0 as a minimum and npm was taking its time to start serving the latest version. Hence, why npm couldn't find the 0.3.0 version.

Also seeing this issue with node -v v6.9.1 and npm -v 3.10.8.
Scott:rewards-ui scottrice$ npm install
npm ERR! Darwin 16.6.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v6.9.1
npm ERR! npm  v3.10.8
npm ERR! code ETARGET

npm ERR! notarget No compatible version found<EMAIL_ADDRESS>npm ERR! notarget Valid install targets:
npm ERR! notarget 0.1.0, 0.0.1
npm ERR! notarget
npm ERR! notarget This is most likely not a problem with npm itself.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! notarget
npm ERR! notarget It was specified as a dependency of 'rewards-ui'
npm ERR! notarget

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/scottrice/code/rewards-ui/npm-debug.log

It should be reported to npm, that's not the issue of this package

Per https://docs.npmjs.com/files/package-lock.json, the version of package-lock should be the same as the version in package.json.
Haven't verified that what's causing our issues, but something to look into.

Thanks! By specifically setting "json-schema-traverse": "^0.3.1" in our package.json, the flow works now without error. Appreciate your quick response.
Agreed it's disappointing that the error message doesn't mention anything about the package-lock.json being the culprit. Certainly difficult to debug.


Build error

Before opening, please confirm:

[X] I have checked to see if my question is addressed in the FAQ.
[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.

App Id
d1uwrttf1z973l
AWS Region
eu-west-1
Amplify Hosting feature
Frontend builds
Frontend framework
React
Next.js version
N/A
Next.js router
N/A
Describe the bug
[WARNING]: "GoThreeBars" is not exported by "node_modules/react-icons/go/index.esm.js", imported by "node_modules/flowbite-react/lib/esm/components/Navbar/NavbarToggle.js".
file: /codebuild/output/src688378717/src/maxx-hire-react/node_modules/flowbite-react/lib/esm/components/Navbar/NavbarToggle.js:3:9
1: import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2: import classNames from 'classnames';
3: import { GoThreeBars } from 'react-icons/go';
^
4: import { mergeDeep } from '../../helpers/mergeDeep';
5: import { useTheme } from '../Flowbite/ThemeContext';
Expected behavior
Build done
Reproduction steps
AWS Amplify Build
Build Settings
version: 1
frontend:
  phases:
    preBuild:
      commands:
        - yarn
    build:
      commands:
        - yarn build
  artifacts:
    # IMPORTANT - Please verify your build output directory
    baseDirectory: dist
    files:
      - '**/*'
  cache:
    paths:
      - node_modules/**/*

Log output

# Put your logs below this line

Additional information
No response

Hi @artrit10 👋 , thanks for reaching out to us!
It seems that the Amplify app d1uwrttf1z973l has been deleted and thus we won't be able to review the build logs for it from our end. From the provided build logs, it seems that the build failed since the GoThreeBars module was recently removed from the react-icons/go dependency which was consumed by the flowbite-react dependency.
Similar issue reported here: https://github.com/themesberg/flowbite-react/issues/818
You can upgrade the flowbite-react dependency to 0.4.9 and it should resolve these build errors. Hope this helps unblock your builds!

@Jay2113 exactly, that was the reason. I upgraded flowbite-react to 0.4.9 and it solved my issue.
Thank you very much for your help.
All the best !


Feature request: findone with where

Some Feature Request
Would it be possible to make this functional?
$model = DataProjectLevel::findOne($id)->where(['project_id'=>3]);

Because i wanted to add some searchcritera additional to the primary key and doesn't want to have the "name" of the primary key in the code like below. (code part from the findModel function in the controller generated by gii)
if (($model = DataProjectLevel::findOne(['level_id' => $id, 'project_id'=>3]))  !== null) {
or
if (($model = DataProjectLevel::find()->where(['level_id' => $id, 'project_id'=>6])->one()) !== null) {

Also I didn't like to have this code just to get the name of the primary key into the code dynamically.
$searchModel= new DataProjectLevel;
if (($model = DataProjectLevel::findOne(array_merge([$searchModel->primaryKey()[0] => $id], $othersearchOptions))) !== null) {

Background I have a Controller which is project specific and only displays and allows to open database entries for the current project which is selected by the url path.
so with the url /project/3/projectlevels/update?id=5 the model shouldn't be returned by the findModel function in the controller and should just throw an error, which would be if the select doesn't return a result.
regards Horizons

Nope, we will not support this because it breaks BC and is against the original intention of introducing findOne(). You should be able to implement this feature in your own base AR class.


Update MissionControlView.java

Fixes feature%2Fhello job name to appear as feature/hello

This change is

Fixed in #1

Actually Not really fixed in the latest release. I will test this and come back with update

Wondering whether you had time to look into this? If not, I can close this PR and you can reopen it when you can provide more details.

Sorry. Will test it tomorrow


Remove redundant and non-functioning nut.log.add call in nut.command.run

The nut.log.add() call in nut.command.run() is redundant as there is already a log in nut.command.parse() which in my opinion is a more logical place for it. (this will prevent two logs from happening when commands return a string)
Also this is a non-functioning log anyways as the logtype command takes one argument that is a string, not the command table and arguments.

nut.command.run and nut.command.parse have 2 different uses.
run is used to run nut commands within scripts, such as updating a char's desc via the f1 menu
parse is used to run nut commands via the console
As such I do not see the need to to remove the log from run. If anything, it could be argued that the log should be removed/changed in parse, as it runs run internally

As such I do not see the need to to remove the log from run. If anything, it could be argued that the log should be removed/changed in parse, as it runs run internally

Moved command log in 1cf435f


The generated active file is shown in the root of workspace

VSCode Version:1.50.1
OS Version: ubuntu 18.04.5 LTS (Bionic Beaver)

Steps to Reproduce:

I open the "project" folder as the root path
In the "project" folder, there is a "folder1" subfolder.
In the "folder1", there is a "helloworld.cpp"
When I try " run build task ..." by using "g++ build active file", the active file "helloworld" will appear in the root folder of "project" instead of the current directory "folder1".
In the task.json file, the environmental variable is  "fileDirname".
This issue suddenly happens, everything is fine before.
All this development implemented by remote ssh extension.

Does this issue occur when all extensions are disabled?: Yes/No
I don't disable all extension

/extCpp


Add BCTRetireCollectModule (a.k.a. ReFiCollectModule)

Collaboration with @cujowolf
We leverage KlimaDAO's retirement aggregator contract to easily swap the provided currency for BCT and retire it in a single transaction. Supports all currently whitelisted currencies.
Includes appropriate beneficiary and retirement messages so that there is an on-chain record of the specific recipient's retirement activity from the fee
This PR is tested and ready, we just need to deploy the Module on Mumbai testnet
NOTE: we decided to name the module BCTRetireCollectModule because BCT is just one of the carbon tokens in the ReFi space, and down the line users may prefer retiring with nature-based offsets (e.g. NCT or MCO2) rather than the mostly renewable energy credits in BCT

Got everything compiled and all tests passing on my machine, I did have to relock package-lock.json and update some import statements to get the test suite working though

OK got the contract deployed on Mumbai pointing to the existing LensHub and ModuleGlobals contracts
https://mumbai.polygonscan.com/address/0x05A6841cBdc292f83b0642954C5497Cb02dED05A#code

Confirmed 100% test coverage locally

Rebased this to resolve conflicts but need approval for the CI checks to run

@donosonaumczuk I assume this PR was closed because of the migration to community modules?
Is there a finalized process for submitting a module for inclusion in the main Lens deployment yet? Last time I asked I was told it was still being set up

@0xAurelius  - Thanks for contributing to the Lens bounties. Lens V2 is coming with a different module interface and process. And the modules will all live in lens-protocol/modules repo, stay tuned and thanks again for your contribution!


Auto-inertial calculations don't allow zero density

Environment

OS Version: macOS 13.5.2-x86_64
Source or binary build? source build of sdf14 as of 2ba6470e8f9cc3e1ee3aec19df574f18bbb10185

Description

Expected behavior: auto-inertial calculation should allow collisions with zero density if there is at least one collision with non-zero density
Actual behavior: an error is thrown

Error Code 19: Msg: Inertia Calculated for collision: box_col_zero_density is invalid.

Steps to reproduce

Build https://github.com/gazebosim/sdformat/commit/747e5553be5f05bc47eb4f27180720dd4481f803 (branch scpeters/auto_inertial_zero_density) from source, which has modified a unit test to show this behavior
Run UNIT_World_TEST

Output
[ RUN      ] DOMWorld.ResolveAutoInertials
/Users/scpeters/ws/sdformat/src/sdformat/src/World_TEST.cc:552: Failure
Value of: errors.empty()
  Actual: false
Expected: true
Error Code 19: Msg: Inertia Calculated for collision: box_col_zero_density is invalid.

/Users/scpeters/ws/sdformat/src/sdformat/src/World_TEST.cc:580: Failure
Value of: errors.empty()
  Actual: false
Expected: true
Error Code 19: Msg: Inertia Calculated for collision: box_col_zero_density is invalid.

[  FAILED  ] DOMWorld.ResolveAutoInertials (63 ms)

the following might work:
diff --git a/src/Collision.cc b/src/Collision.cc
index cf03c565..46337d51 100644
--- a/src/Collision.cc
+++ b/src/Collision.cc
@@ -303,6 +303,13 @@ void Collision::CalculateInertial(
     );
   }

+  if (density == 0)
+  {
+    // Set to default Inertial, which has zero mass and moments of inertia.
+    _inertial = gz::math::Inertiald();
+    return;
+  }
+
   auto geomInertial =
     this->dataPtr->geom.CalculateInertial(_errors, _config,
       density, this->dataPtr->autoInertiaParams);
diff --git a/src/Link.cc b/src/Link.cc
index c3d772dd..57e68055 100644
--- a/src/Link.cc
+++ b/src/Link.cc
@@ -646,6 +646,13 @@ void Link::ResolveAutoInertials(sdf::Errors &_errors,
       totalInertia = totalInertia + collisionInertia;
     }

+    if (!totalInertia.MassMatrix().IsValid())
+    {
+      _errors.push_back({ErrorCode::LINK_INERTIA_INVALID,
+          "Inertia Calculated for link: " +
+          this->dataPtr->name + " is invalid."});
+    }
+
     this->dataPtr->inertial = totalInertia;

     // If CalculateInertial() was called with SAVE_CALCULATION


load cells as a standalone "Spreadsheet with JavaScript scripting"

hahaha
maybe I should put it in a webworker first

[ ] style properly
[ ] multi-selection (like excel for copy paste),
[ ] import and export (csv -- use csv parsing library)
[ ] import and export using API (programmatically input and output data)
[ ] column / row dragging for width / height
[ ] size dragging also on mobile
[ ] cell sorting (ascending / descending)

later:

[ ] implement proper change propagation, by getting used variables using the proxy (somehow)
[ ] consider doing compute inside a webworker to isolate from main thread and from DOM


added test ensuring path traversal risk is negated (see issue #262)

See issue #262

I think this covers it, thank you. If you want to be extra thorough, you might want to include a test for non-ASCII characters (which, while I don't think they can be used in an attack, certainly don't belong in the file name), like á, ö or ／.


translations: Single quotes are replaced by double quotes in German translation

Single quotes are replaced by double quotes in German translation:
"Cannot find runtime '{0}' on PATH.",
"Die Laufzeit \"{0}\" wurde in \"PATH\" nicht gefunden.",
"No se encuentra el runtime '{0}' en PATH.",

Is this intentional?
In addition the German translation seems to introduce quotes as for PATH above.
Is this intentional?

Ported to loc for answer

New DEU string: Die Laufzeit "{0}" wurde in PATH nicht gefunden. Linguistic confirmed DEU does not generally use single quotation marks


Add a few changes:

Remove several render's named parameters that served to provide the
Mustache template with some template variables. Instead, let the user
supply whatever template variables the template might need.
Now the Mustache template can also be supplied with partials
collected from a directory partials in the same directory as
main.mustache.
Instead of supplying a few semantic blocks as HTML meta tags,
Pod::To::HTML now supplies all of them as regular template
variables to the template.
Add a more sensible CSS stylesheet which is available as the
template default-style to the template.
Update examples/ directory
Move documentation to doc/ and generate README.md from it.

I'll check it out momentarily...

1. It's 23 files...

That's a feature, not a bug. ☺ Aside from tweaks to documentation, examples & tests, it's 3 files: The module file itself, a CSS template, and an HTML template.

2. it probably needs a backend revision based on pod::to::Cached and Documentable

I could be missing something, but I don't think migrating to Documentable would be easier without these changes. It seems orthogonal? If so, I see no reason not to merge this now.
Tim

JJ, you're right that changing the extension in a separate commit would have been cleaner. But thanks for merging the changes in. The end result looks good.


Add documentation for Lottie

Added relevant assets, folders, and .md files.
Updated ToC

OPS Build status updates of commit d6bf077:
:clock10: Preparing: average preparing time is 1 min(s) 20 sec(s)

OPS Build status updates of commit d6bf077:
:clock10: Incremental building: average incremental building time is 1 min(s) 13 sec(s)

OPS Build status updates of commit d6bf077:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/animations/Lottie.md
:white_check_mark:Succeeded
View

docs/animations/lottie-scenarios/async_play.md
:white_check_mark:Succeeded
View

docs/animations/lottie-scenarios/fallback.md
:white_check_mark:Succeeded
View

docs/animations/lottie-scenarios/getting_started_codegen.md
:white_check_mark:Succeeded
View

docs/animations/lottie-scenarios/getting_started_json.md
:white_check_mark:Succeeded
View

docs/animations/lottie-scenarios/json_codegen.md
:white_check_mark:Succeeded
View

docs/animations/lottie-scenarios/playback.md
:white_check_mark:Succeeded
View

docs/animations/lottie-scenarios/segments.md
:white_check_mark:Succeeded
View

docs/resources/images/Animations/Lottie/LottieDocs_Async.gif
:white_check_mark:Succeeded
View

docs/resources/images/Animations/Lottie/LottieDocs_Autoplay.gif
:white_check_mark:Succeeded
View

docs/resources/images/Animations/Lottie/LottieDocs_BuildAction.png
:white_check_mark:Succeeded
View

docs/resources/images/Animations/Lottie/LottieDocs_Intro.gif
:white_check_mark:Succeeded
View

docs/resources/images/Animations/Lottie/LottieDocs_LottieViewer.png
:white_check_mark:Succeeded
View

docs/resources/images/Animations/Lottie/LottieDocs_Playback.gif
:white_check_mark:Succeeded
View

docs/resources/images/Animations/Lottie/LottieDocs_Segments.gif
:white_check_mark:Succeeded
View

docs/resources/images/Animations/Lottie/LottieDocs_Workflow.png
:white_check_mark:Succeeded
View

docs/toc.md
:white_check_mark:Succeeded
View

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


Support atomicswap for ethereum using threefoldtech/atomicswap/cmd/ethatomicswap

Support atomic swap with Ethereum using https://github.com/threefoldtech/atomicswap/tree/master/cmd/ethatomicswap, similar to how we already support BTC Electrum and TFT.

this we need indeed for summer


URL test results in HTML report are not always based on the proxy configuration shown in the report

I have been using the Client Analyzer tool for testing/validating connectivity in a large scale deployment (19,000+ endpoints) and accidentally discovered what I believe to either be a bug or something that isnt clearly articulated in the HTML report output by the tool.
In my example we were testing the use of a static proxy for Defender for Endpoint configured via group policy and whether Defender was able to reach the URLs using that proxy after it had been configured. In this scenario we tested and the HTML report showed that our static Defender proxy was listed in the AV Component Details section as in use by MDAV, and also in the EDR Component Details section of the report to show the Sense Service was using it.
In the Detailed Results section the results showed that all Defender URLs were successfully contacted so we took that to mean everything was working as we had planned/configured.
We then reviewed the proxy logs for the Defender traffic and couldnt see any trace. Upon further investigation there was a routing issue in place that prevented our test device from reaching the newly configured proxy at all?! We couldnt understand why the HTML report showed successful connections when the server couldnt actually use the proxy.
Upon further investigation we looked in the MDEClientAnalyzer.txt file and discovered the server could also resolve WPAD to locate an alternate proxy on our network and used this method to communicate to the Defender URLs.
My point is that if we hadnt reviewed the Proxy logs and discovered the routing issue, based on the HTML report showing the proxy was picked up by MDAV and EDR we would have incorrectly assumed that this was the method used to route the traffic.
With the format of the HTML report as it is, this is an obvious and easy assumption to make.
My question is, is it possible to either amend the report to show all the results of all the communication method(s) used to reach the URLs without having to review the .txt file, or alternatively limit the results of the URL tests shown in the HTML report to reflect only the results of those tests when using the proxy shown in the report.
Either of these would prevent the scenario I outlined above from occurring.
Once we have some clarity on the current behaviour and what is and isnt possible, the documentation should be altered to reflect this and prevent people from making an obvious (but incorrect) assumption.

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

ID: d9a7e3f8-6541-6c0f-5647-9d8327d16ad4
Version Independent ID: f48e2c25-fc40-69d4-6150-dc68b66fd2bb
Content: Understand the client analyzer HTML report
Content Source: microsoft-365/security/defender-endpoint/analyzer-report.md
Service: microsoft-365-security
Sub-service: mde
GitHub Login: @mjcaparas
Microsoft Alias: macapara

@mjcaparas Please help us in resolving this issue. Thanks


Update generated ref docs for Kubernetes and Federation components.

Work in progress. Do not merge.

This change is

Duplicates #6658. Closing.


bal test --native fails on windows for log module

Description:
$subject
https://github.com/ballerina-platform/module-ballerina-log/actions/runs/3836463743/jobs/6531632104#step:10:305
Steps to reproduce:
Affected Versions:
OS, DB, other environment details and versions:
Related Issues (optional):

Suggested Labels (optional):

Suggested Assignees (optional):

I printed outText (https://github.com/ballerina-platform/module-ballerina-log/blob/804cd0a0ded17f5eedcd6ad6fd0ab767f757a5ad/integration-tests/tests/tests_json.bal#L217) for native build in windows (https://github.com/Thevakumar-Luheerathan/module-ballerina-log/actions/runs/3845874517/jobs/6550530705#step:10:1646) and ubuntu (https://github.com/Thevakumar-Luheerathan/module-ballerina-log/actions/runs/3845874517/jobs/6550530573#step:9:1447). I can see Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8 string additionally in the windows build. It seems to be causing failures.

JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF8 is set by default in the workflow for the windows build. May be disabling that setting will work. Will check on that.

The above PR will fix the issue due to setting JAVA_TOOL_OPTIONS unnecessarily.
Successful workflow run with this fix : https://github.com/TharmiganK/module-ballerina-log/actions/runs/3846503187


Generating a String Array from a Union type

Suggestion
Hello!

I suggest a syntax & feature which generates a list of strings from a Union type.
For some cases, script codes would be redundant when making & using a list of keys in pre-defined Map objects

(ex: SVGElementTagNameMap)
see the example below.

🔍 Search Terms

string array
list
Union type
keyof

✅ Viability Checklist

My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[ ] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion
A syntax to generate lists of strings from Union Types.
For example (Could be different syntax):
type SVGTagName = keyof SVGElementTagNameMap  // 'altGlyph' | ... | 'use' | 'video' | 'view' | 'vkern'
const SVG_TAG_NAMES = Array<SVGTagName>()  // ['altGlyph', ... , 'use', 'video', 'view', 'vkern']

📃 Motivating Example
When I try to judge if a string value is an SVG tag name by using an array list of SVG tag names,
I wanted to  use keyof SVGElementTagNameMap because I already use it in other parts of my code,
But currently, I need to prepare whole another string list of SVG tags in my script.
Example:
type SVGTagName = keyof SVGElementTagNameMap  // using this in other parts of my code

//currently I need to put the following long list.
const SVG_TAG_NAMES = [
  'altGlyph',
  // ... long list of names
  'use',
  'video',
  'view',
  'vkern'
]

function isSVGTag(tagname: string): boolean {
  return SVG_TAG_NAMES.includes(string)
}

For the above case, if I could use a feature to generate a list of strings from Union type, the code would be neat and useful.
💻 Use Cases
With this feature, some codes would be neat and nice 😃

Duplicate of #13267.