[$2000] iOS - Chat - Cursor in the second and following lines touches the symbols of the previous line

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open the app
Sign in with any account
Go to any chat
Type anything on the composer until you reach the end of the line

Expected Result:
Cursor in the second and following lines NOT touches the symbols of the previous line
Actual Result:
Cursor in the second and following lines touches the symbols of the previous line
Workaround:
UNknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[x] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: Yes
Reproducible in production?: yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation

Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01dac248cbb18d206b
Upwork Job ID:<PHONE_NUMBER>228594176
Last Price Increase: 2023-03-13

Triggered auto assignment to @sakluger (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Job added to Upwork: https://www.upwork.com/jobs/~01dac248cbb18d206b

Current assignee @sakluger is eligible for the External assigner, not assigning anyone new.

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

Triggered auto assignment to @alex-mechler (External), see https://stackoverflow.com/c/expensify/questions/7972 for more details.

Proposal
Please re-state the problem that we are trying to solve in this issue.
[iOS] Chat: The cursor of the composer is located at the wrong line when touched.
What is the root cause of that problem?
React Native's TextInput component has an issue on iOS regarding the line height - https://github.com/facebook/react-native/issues/28012
What changes do you think we should make in order to solve the problem?

We can fix it by just removing the lineHeight property in the styles.

📣 @shaunnewsum2020! 📣
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/~01619249d793a96491

Still waiting for more proposals Melvin

@alex-mechler This seems to be something that is the default behaviour on RN Text input for iOS. It is not dependent on the line height of the input. I have created a Snack for you to confirm this. I think we should do nothing here.

Not overdue, waiting for proposals!

Please re-state the problem that we are trying to solve in this issue.
[iOS] Chat: The cursor of the composer is located at the wrong line when touched.
What is the root cause of that problem?
React Native's TextInput component has an issue on iOS regarding the line height. The height of the cursor becomes the same as the line height. So touches the previous line.
What changes do you think we should make in order to solve the problem?
We can fix it by changes the height of the cursor for IOS for multiline input.
#pragma mark - verticalBeam Manipulation
- (CGRect)caretRectForPosition:(UITextPosition *)position
{
  if (_caretHidden) {
    return CGRectZero;
  }

    CGRect originalRect = [super caretRectForPosition:position];
    originalRect.size.height *= 0.75;
    return CGRectMake(originalRect.origin.x, originalRect.origin.y + 4 , originalRect.size.width, originalRect.size.height);

}

Code Snippet:

UI after applying the above code

What alternative solutions did you explore? (Optional)
NA

📣 @soumyajit4419! 📣
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>

⚠ Missing/invalid email or upwork profile link. Please make sure you add both your Expensify email and Upwork profile link in the format specified.

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

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

@alex-mechler This seems to be something that is the default behaviour on RN Text input for iOS. It is not dependent on the line height of the input. I have created a Snack for you to confirm this. I think we should do nothing here.

@allroundexperts Even if it is the default behavior, it is still a display issue. We should fix this regardless of if it is a default behavior.

@soumyajit4419 What's the logic beyond adding 4 to originalRect.origin.y in CGRect computation?
Also, can you spin up a PR against RN Upstream, so let's hear thoughts from the RN maintainers too?

@soumyajit4419 What's the logic beyond adding 4 to originalRect.origin.y in CGRect computation? Also, can you spin up a PR against RN Upstream, so let's hear thoughts from the RN maintainers too?

We are decreasing the height of the original react. But its origin.y starts from top . So to bring it down I have added y + 4.
So that it stays in the correct position.

We reduce the height of caret based on the font
- (CGRect)caretRectForPosition:(UITextPosition *)position
{
  if (_caretHidden) {
    return CGRectZero;
  }

  CGRect originalRect = [super caretRectForPosition:position];
    UIFont *font = self.font;
    originalRect.size.height = font.pointSize - font.descender;
    return CGRectMake(originalRect.origin.x, originalRect.origin.y - font.descender , originalRect.size.width, originalRect.size.height);
}

This solution is based on the comments of the react-native PR.
I have also updated my upstream PR.

Cool let's wait for a review there, Resolve conflicts on the PR too. Can you share your recording to see how it looks now?

Cool let's wait for a review there, Resolve conflicts on the PR too. Can you share your recording to see how it looks now?

I have resolved the conflict in the PR.
I have attached the recordings below
https://user-images.githubusercontent.com/46092576/226199938-78400fe7-1f25-4522-8ab9-b312c1197d5b.mov

Thanks, LGTM, let's wait for the review!

Proposal
Updated
I have updated the proposal based on react-native PR comments.

@Santhosh-Sellavel
The react-native PR is approved PR
Can you please check it.

@alex-mechler We are good to hire @soumyajit4419 here
Cc:@sakluger

📣 @soumyajit4419 You have been assigned to this job by @alex-mechler!
Please apply to this job in Upwork and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻
Keep in mind: Code of Conduct | Contributing 📖

Reducing cursor height is a workaround.
Root cause: text is currently bottom aligned.
The solution is to center align text in TextInput multiline, same as Text.

Thanks, @situchan!

@Santhosh-Sellavel
I had fixed the bug reported by @situchan
I had created a upstream PR and its been merged.
Upstream PR
I have also updated my native PR also.
Native PR

@sakluger @alex-mechler @soumyajit4419 @Santhosh-Sellavel this issue is now 3 weeks old. There is one more week left before this issue breaks WAQ and will need to go internal. What needs to happen to get a PR in review this week? Please create a thread in #expensify-open-source to discuss. Thanks!

Melvin bumped this up after we had already started work on this, since I was slow to assign @soumyajit4419. Dropping this back to 2k, where it was when work was started. Thanks @sakluger for mentioning this

Upwork job price has been updated to $2000

@soumyajit4419 any update?
Or should we unassign open this back to proposals?
cc: @alex-mechler

Yes, I am working on the solution
I think charging caret size is creating other issues.
So I was thinking of alternatives.
You can unassign and open for proposal.
Or give me some time to update my native PR with a proper solution.

If you are still working on it, I'm happy to have you keep going!

If you are still working on it, I'm happy to have you keep going!

Yes , I am still working on it.

Cool, I too have no issues keeping them assigned. As this might take some time to get it going forward just concerned about the timeline penalties because we are on the 5th biz day today and don't want their hard work wasted here. At the same time opening back to proposals will get more eyes on it we could have other options too.
cc: @alex-mechler @soumyajit4419

Cool, I too have no issues keeping them assigned. As this might take some time to get it going forward just concerned about the timeline penalties because we are on the 5th biz day today and don't want their hard work wasted here. At the same time opening back to proposals will get more eyes on it we could have other options too.
cc: @alex-mechler @soumyajit4419

Yes it will take some time so my deadline for PR might get missed
As now instead of reducing caret size I am trying to vertically center the text so that it will not create any issues.
And the bug will also be resolved

@sakluger @alex-mechler @soumyajit4419 @Santhosh-Sellavel this issue is now 4 weeks old and preventing us from maintaining WAQ, can you:

Decide whether any proposals currently meet our guidelines and can be approved as-is today
If no proposals meet that standard, please take this issue internal and treat it as one of your highest priorities
If you have any questions, don't hesitate to start a discussion in #expensify-open-source

Thanks!

Current assignee @Santhosh-Sellavel is eligible for the Internal assigner, not assigning anyone new.

@soumyajit4419 any update here?

No,
No update I have been trying to center the text input
Placeholder is being centered but not the input.

No worries! Thanks for your hard work!

Hi, I'm Agata from Callstack - expert contributor group - maybe I could help with this one?

Hi, I'm Olimpia from Callstack - expert contributor group -  I'll be happy to work on this issue.

Thanks @OlimpiaZurek! Looking forward to seeing your proposal for this issue.

I'm still investigating this issue and working on a proposal.

Daily update: Still looking for a possible solution that won't break anything else ;)

Please re-state the problem that we are trying to solve in this issue.
When the user types a message in the input, the cursor in the second and subsequent lines touches the symbols of the previous line
What is the root cause of that problem?
The root cause of this issue comes from the React native library and the way TextInput interacts with the multiline property. Uses the caretRectForPosition function, which draws a caret at the specified insertion point.
There is no way to fix this in the Expensify app and the change has to be applied to the react native library itself.
What changes do you think we should make in order to solve the problem?
My suggestion to solve this problem is to add an additional prop sto RCTUITextView class called e.g. caretYOffset and caretHeight and based on this values calculate the caret position and caret height inside react native (by passing and calculating this values from the app's perspective)
 (CGRect)caretRectForPosition:(UITextPosition *)position
{

    CGRect originalRect = [super caretRectForPosition:position];
    originalRect.origin.y += _caretYOffset; // adjust the y-position by given points
    originalRect.size.height = _caretHeight; // adjust the height
    return originalRect;
}

This keeps us from changing the default TextInput implementation in the react-native library and also gives us the ability to adjust the cursor position in the future in our app.
Then, to fix this in Expensify app, just pass caretYOffset= {4} and caretHeight={16} (based on font size) which seems to be enough to keep the cursor from overlapping the previous line of text.

I think this will not change the height of the caret on selection and will cause the same issues which were being caused above due to my changes.

@sakluger, @OlimpiaZurek, @alex-mechler, @Santhosh-Sellavel Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

@OlimpiaZurek any update?

@OlimpiaZurek it sounds like your proposed solution would cause a regression. Do you have an alternate solution that would not cause a regression? If not, we can open this back up to another contributor. Please let us know if you are working on another solution.

@sakluger My proposal does not change default  behaviour on react-native side so it would not cause a regression.
The main idea was to expose caretHeight and caretYOffset props on react-native. This allows us to calculate these two values in the Expensify app and as I mentioned passing caretYOffset={4} and caretHeight={16} will solve this issue.
The only thing @Santhosh-Sellavel  pointed out is that this approach will not change the height of the caret when selected. I'm going to work on solving this or try to find another solution.

@OlimpiaZurek Any update here?

Still under investigation as I've been working on other issues in the meantime.

@OlimpiaZurek Any update or progress here?

Update: I found a solution to change the height of the caret position on selection as well. I'm testing it now. I will add a revised proposal tomorrow.

Update: I've finished my proposal and we have discussed it internally. One thing I need to do is see if my solution works on the new arch. I had some issues with setting up my environment to do this, so I'll give it a try tomorrow.

Can I help Olimpia or other contributors in this task? These are my react-native PRs:
https://github.com/facebook/react-native/pulls?q=is%3Apr+author%3Afabriziobertoglio1987+sort%3Acreated-desc
Thanks

Proposal
Please re-state the problem that we are trying to solve in this issue.
When the user types a message in the input, the cursor in the second and subsequent lines touches the symbols of the previous line
What is the root cause of that problem?
The root cause of this issue comes from the React native library and the way TextInput interacts with the multiline property. It uses the caretRectForPosition function, which draws a caret at the specified insertion point.
There is no way to fix this in the Expensify app and the change has to be applied to the react native library itself.
What changes do you think we should make in order to solve the problem?
My suggestion to solve this problem is to add an additional prop to RCTUITextView class called e.g. caretYOffset and caretHeight and based on this values calculate the caret position and caret height inside react native (by passing and calculating this values from the app's perspective)
 (CGRect)caretRectForPosition:(UITextPosition *)position
{

  CGRect originalRect = [super caretRectForPosition:position];
  originalRect.origin.y += _caretYOffset; // adjust the y-position by given points
  originalRect.size.height = _caretHeight; // adjust the height
  return originalRect;
}

To calculate position and caret size of the selection we can add and modify selectionRectsForRange:
- (NSArray *)selectionRectsForRange:(UITextRange *)range {
  NSArray *superRects = [super selectionRectsForRange:range];
  NSMutableArray *richTextSelectionRects = [NSMutableArray array];

  for (UITextSelectionRect *rect in superRects) {
    RichTextSelectionRect *richTextRect = [[RichTextSelectionRect alloc] init];
    richTextRect._rect = CGRectMake(rect.rect.origin.x, rect.rect.origin.y + _caretYOffset, rect.rect.size.width, _caretHeight);
    [richTextSelectionRects addObject:richTextRect];
  }

  return richTextSelectionRects;
}

Thanks to these changes, we will be able to adjust the position of the cursor in both cases.
This keeps us from changing the default TextInput implementation in the react-native library and also gives us the ability to adjust the cursor position in the future in our app.
Then, to fix this in Expensify app, just pass caretYOffset= {4}and caretHeight={16} (based on font size) which seems to be enough to keep the cursor from overlapping the previous line of text:

It is also worth mentioning that the solution would not cause regression, because caretYOffset and caretHeight can be freely calculated inside the application and thus adjust the cursor height to its needs.
Here is an example of use with a different line height and centered text (I just change the values of these two props):

@OlimpiaZurek Thanks for the proposal, can you create a PR against RN Repo, let's hear feedback from the RN Team, too.

Please leave PR link once you created, thanks!

PR is ready: https://github.com/facebook/react-native/pull/37147.

Please let me know if I should add the PR to the upstream repository as well. Thanks.

Please let me know if I should add the PR to the upstream repository as well. Thanks.

Lets wait to see the feedback on the RN PR before adding to our upstream for now. The RN team is pretty quick about responding usually. Enjoy your days off!

PR is up on RN Waiting for @OlimpiaZurek here to address review changes

Hopefully, work will resume tomorrow once @OlimpiaZurek  is back!

Update: I have already addressed all the comments in my PR : https://github.com/facebook/react-native/pull/37147.  I’m waiting for further feedback from the RN team.

Still waiting for a response from the RN team

Any updates @alex-mechler?

Same thing, still waiting on a re-review from the RN team.

@OlimpiaZurek Can you give the RN team a bump to see if they can take a look at your changes again?

Thanks for the note @fabriziobertoglio1987. @alex-mechler and @Santhosh-Sellavel, would this alternative solution help here, or should we continue forward with the current plan?

Hey @alex-mechler @Santhosh-Sellavel I'd like to make sure this alternate solution is addressed, as the main solution is already in progress. Would one of you mind taking a quick look? Thanks!

Oops missed this one completely
@fabriziobertoglio1987 why do we set paragraphStyle.lineSpacing as 20.0.

Investigate existing behavior on Android (platform parity)

iOS - The cursor touches the previous line

Android - The cursor is cut and does not touch the previous line

Detect the root cause in react-native. For example, the lineHeight is 2x fontSize.lineHeight and causes the cursor to touch the previous line.

https://snack.expo.dev/@fabrizio.bertoglio/ludicrous-edamame?platform=ios

Change the corresponding paragraphStyle or cursor attribute to avoid touching the previous line. See my previous comment for more info.

I'm currently working on another issue. I had to write this answer quickly. Sorry.

@fabriziobertoglio1987
Sorry I still didn't get the answer, why  this hard coding
 if (!(font && font.lineHeight > _lineHeight)) {
      paragraphStyle.lineSpacing = 20.0;
    }

Detect the root cause in react-native. For example, the lineHeight is 2x fontSize.lineHeight and causes the cursor to touch the previous line.

That's not the case with us
fontSizeNormal: getValueUsingPixelRatio(15, 21),
  lineHeightXLarge: getValueUsingPixelRatio(20, 24),

Please write us again more elaborately when you get time, thanks!

@OlimpiaZurek since we are still waiting on the RN team to get back to reviewing your PR, can you spin up a PR against our fork? That way we can close out this longstanding issue while we wait to hear back from them

Update: I started creating a PR against the fork repo. Since there are many conflicts related to rebasing my branch that need to be resolved, so I will continue tomorrow.

@Santhosh-Sellavel Apologies for the delayed response, I didn't notice your question earlier.
I'm not sure hard code values inside a react-native is a good idea. If we do it this way, we can cause regression in other apps that use TextInput. Therefore, my solution is based on props, not values that would override the default behavior in react-native. Unfortunately, I'm still waiting for feedback from Team RN to see what they think about it.
I also don't understand why the line spacing is exactly 20.0 and not sure if we want this effect in the app:

This solution also causes regression. This wouldn't be a problem in this app as Composer's height is set to "auto",  but it could be a problem in other cases:
https://github.com/Expensify/App/assets/19835085/17258470-c95c-4427-bf05-3d235baffe73

Sorry for the misunderstanding. I did not want to suggest setting the line spacing to 20.0. Thanks a lot 🙏

PR against forked repo is ready: https://github.com/Expensify/react-native/pull/58

@Santhosh-Sellavel Can you review the fork PR? I would request your review on it, but I cannot yet since you have not commented on it

Not overdue, PR is still in review.

Readded BZ label since I'm OOO next week.

PR is ready: facebook/react-native#37147.

So we are back to this PR again?

@OlimpiaZurek There is some conflicts now, please resolve make it ready for review!

Removed @jliexpensify since I'm back from vacation.

@Santhosh-Sellavel conflicts resolved, ready for review

Removing AlexM's assignment and assigning a new CME.

Checking in on the status of this issue. @OlimpiaZurek are we waiting for this PR (https://github.com/facebook/react-native/pull/37147) to be merged before we can finish reviewing this PR (https://github.com/Expensify/react-native/pull/58)? I don't completely understand what's going on with this one, so if you're able to give some context on the status it would be much appreciated. 🙇

@sakluger We are waiting for the https://github.com/facebook/react-native/pull/37147 to be reviewed & merged

@Santhosh-Sellavel @OlimpiaZurek just to set expectations, is there an standard or average turnaround time for a review from the RN team?

@Santhosh-Sellavel @OlimpiaZurek just to set expectations, is there an standard or average turnaround time for a review from the RN team?

cc: @AndrewGable

@sakluger - No I do not believe so.

Well that's a bummer. I guess we'll just keep checking in from time to time.

@sakluger Can you make it Weekly again?

@sakluger @AndrewGable Can you reopen the issue?

Added to the VIP-VSB project board and bumped the PR to ask for a review.

Looks like the PR got some reviews this week! @OlimpiaZurek mind taking a look?

Alternate Proposal Solution:
Update React Native, bug is probably fixed in 0.73.0
https://github.com/facebook/react-native/blob/main/CHANGELOG.md

Fixed cursor height on multiline text input (987c6fd298, e1885853ac by @soumyajit4419)

The comments and conflicts have been resolved.

@zanyrenney assigning you to help watch this issue while I'm OOO through May 31. Please handle payment if needed. I'll take back over if it's still open when I return.

@zanyrenney I believe this issue is solved with https://github.com/facebook/react-native/pull/38359 (Paper) and https://github.com/Expensify/react-native-live-markdown/pull/350 (Fabric).

Before
After

Related issues are https://github.com/Expensify/App/issues/17767 and https://github.com/Expensify/App/issues/14445

Update 22 May 2024

Merged PR https://github.com/Expensify/react-native-live-markdown/pull/350
Published Draft PR https://github.com/Expensify/App/pull/42454 to update Expensify dependency react-native-live-markdown to 0.1.76. I will move it to Ready for Review tomorrow.

Update 23 May 2024
Moved PR https://github.com/Expensify/App/pull/42454 to ready for review.

Update 1st of June 2024
PR https://github.com/Expensify/App/pull/42454 was reverted because there are issues with react-native-live-markdown. The issues seem to not be related to PR https://github.com/Expensify/react-native-live-markdown/pull/350.

https://github.com/Expensify/App/issues/42755 (Android)

Update 5th of June 2024
Hello @sakluger,
The issue is solved with PRs:

https://github.com/facebook/react-native/pull/38359 (Paper - merged)
https://github.com/facebook/react-native/pull/44614 (Fabric - merged)
https://github.com/Expensify/react-native-live-markdown/pull/350 (Fabric - merged)

Before
After

Should I apply for the Upwork job?
Thanks a lot
Related issues are https://github.com/Expensify/App/issues/17767 and https://github.com/Expensify/App/issues/14445

Hey @Santhosh-Sellavel could you please complete the BZ checklist?

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:

[x]  [@marcochavezf] The PR that introduced the bug has been identified. Link to the PR: N/A
[x]  [@marcochavezf] 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: N/A
[x]  [@marcochavezf] 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: N/A
[x]  [@OlimpiaZurek / @Santhosh-Sellavel] Determine if we should create a regression test for this bug. Yes
[x]  [@OlimpiaZurek / @Santhosh-Sellavel] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again. Will do in the comment below
[ ]  [@sakluger / @zanyrenney] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

Bug: Chat - Cursor in the second and following lines touches the symbols of the previous line
Proposed Test Steps:

Open the app
Sign in with any account
Go to any chat
Type anything on the composer until you reach the end of the line
Verify Cursor in the second and following lines NOT touches the symbols of the previous line

👍  or 👎
cc: @sakluger @marcochavezf

@sakluger
Can you update the payment summary, please!
It says only $250, this had lot of review work. It was $2000 as you can see it in title, this was on hold mostly due to RN Deploy. Not sure when it got merged as you can see this original https://github.com/facebook/react-native/pull/37147 is still open, I missed this comment it got merged in mention PRs it seems I am unaware because of that. Any please update the payment summary accordingly if there is deduction please let me know, but $250 is really low for the work done here Thanks!

See https://github.com/Expensify/App/issues/15640#issuecomment-2148759310 and previous comments.

This issue should be closed. It's fixed. PR 350 landed in the main branch by updating react-native-live-markdown to version 0.1.82.

@Santhosh-Sellavel I'm going to close this as complete. Please request via NewDot if you have not already. Thanks!


Modify base.html to remove spinner in hamburger menu

Update:

Remove spinners in hamburger menu

Not sure why the spinners were there in the first place, but I’m wondering why they were triggered now and had been invisible before. Was this related to the change to start the search spinners immediately after a search change? If so does that mean that code isn’t specific enough about which spinners to activate? I don’t want future spinners to pop up when we don’t expect them.

Those spinners exist previously in html, and it's hidden by this css style (which was cleaned up last Friday):
#op-obs-menu .spinner {     display:none;     margin:0px 10px;     width:30px; }
I forgot to remove them from the html structure but only cleaned up css codes. They have nothing to do with the spinners triggered at the beginning of a search. For reference, these are the spinners triggered when a search is started:

result count spinner
spinners next to the title of widgets
general constraints spinner


run: fix runtime standalone

With this patch a new pts will be created when
the console provided as argument is /dev/ptmx.
Runtime stdout and stdin will be forwarded to
the master fd and then to the slave, something
like this:
/dev/pts/0 <--> master <--> /dev/pts/1

where pts 0 is assigned to the runtime and
pts 1 is assigned to the container
fixes #158
Signed-off-by: Julio Montes<EMAIL_ADDRESS>

Coverage decreased (-3.8%) to 30.849% when pulling 74245e6562291d3f47e34044b6404b4d31bc696c on devimc:topic/runAllocatePts into 94749ee99165fd367e899d6ccb754f81e7d12e5e on clearcontainers:master.

eek -4% coverage, that's really a step back and goes against our alpha/beta targets. Will review tomorrow.

For the test coverage, a lot can be done by removing the functions we don't use from console_linux.go. Let's see where we are then, but it'd be nice to have some coverage.

Oh, maybe we should check that the pty is indeed not there when the process ends, at least manually.

Coverage increased (+1.0%) to 35.607% when pulling af2af6290ad38357e9088d63688ccec93319b4d8 on devimc:topic/runAllocatePts into 94749ee99165fd367e899d6ccb754f81e7d12e5e on clearcontainers:master.

lgtm

Of course, latest clear version at this time 15510 doesn't have a -containers.img image.... so tests are failing.

Coverage increased (+1.0%) to 35.607% when pulling 535470331b5037afd102abdc6834dbbed1d3dd13 on devimc:topic/runAllocatePts into 94749ee99165fd367e899d6ccb754f81e7d12e5e on clearcontainers:master.

Please wait for merging this one, I would like to review it properly

I've added some potential follow-up work in issue https://github.com/clearcontainers/runtime/issues/179. I don't think it needs to be part of this PR as it should be useful to start writing tests as is.

@sboeuf done

Coverage increased (+1.0%) to 35.512% when pulling eed82b8954d3618ffde4e255595ccb459cf864f1 on devimc:topic/runAllocatePts into 3391e03f497f2d1b717bfa26c7f3917fbc71345d on clearcontainers:master.

Coverage increased (+1.0%) to 35.512% when pulling da4bb72880ea9d3bc7e3479085f5a604fc3672a9 on devimc:topic/runAllocatePts into 3391e03f497f2d1b717bfa26c7f3917fbc71345d on clearcontainers:master.

Coverage increased (+1.0%) to 35.512% when pulling da4bb72880ea9d3bc7e3479085f5a604fc3672a9 on devimc:topic/runAllocatePts into 3391e03f497f2d1b717bfa26c7f3917fbc71345d on clearcontainers:master.

@dlespiau Not sure about the vendoring here. We pull some Windows specific things because docker term depends on this ??
Maybe we can vendor after we took this patch into our runtime codebase ?

I have talked with @devimc about this and apparently prune doesn't remove it. I guess the docker package pulls that one in.

LGTM

@jodh-intel we need your review on this one.

lgtm


Questions

Here I have some questions:
1.How can I change the style of button tag?Why soesn't work when I style button?
2.What's the meaning of i tag with class?like  <i class="icon-menu"></i>Is there any other class attributes?
3.How can I set the margin and padding of the button?
Thanks

You can use bttn classes provided in bttn.css, you can add your own CSS class after requiring bttn.css to override styles.

No icon classes are provided by default. You can use your own icon library.

Again, You can add your own CSS class after requiring bttn.css to override styles.


Test identifier generation

Unless proven otherwise, the creation of different identifiers for the same input string is not possible.
Closes #298

@0x2b3bfa0 I replied to you

Where?

@DavidGOrtega, would you mind if I tone down the tests a bit? I feel that trying every condition a thousand times it a bit too much, at least once we know that there isn't any technical issue.


rename repo to theme-pure

This is in order to support OMF install with
omf install pure

This is backward-compatible thanks new Github feature that Automatic redirects for renamed repositories.

Done :+1:


[SPARK-11007] [SQL] Adds dictionary aware Parquet decimal converters

For Parquet decimal columns that are encoded using plain-dictionary encoding, we can make the upper level converter aware of the dictionary, so that we can pre-instantiate all the decimals to avoid duplicated instantiation.
Note that plain-dictionary encoding isn't available for FIXED_LEN_BYTE_ARRAY for Parquet writer version PARQUET_1_0. So currently only decimals written as INT32 and INT64 can benefit from this optimization.

Merged build triggered.

Merged build started.

Test build #43443 has started for   PR 9040 at commit bd694d6.

Test build #43443 has finished for   PR 9040 at commit bd694d6.

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

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

Merged build finished. Test PASSed.

LGTM. Have you benchmark the difference? Since it's not that expensive to create a Decimal from Long, I'm just curious how much we can gain from this.

@davies I am doing benchmark for this one. At first I was hoping to see noticeable performance gain for binary backed decimals, but later I found that PARQUET_1_0 simply doesn't support dictionary encoding for FIXED_LEN_BYTE_ARRAY. So I think only binary decimals written in PARQUET_2_0 formats benefit significantly from this one, since it avoids both Decimal instantiation and decoding the binary values.

It's good to have this, merged into master.


Colour selector does not move

Wheel isn't big enough to show all colours, when you click a colour the wheel tries to select it for you, in some cases it cannot do this as the resolution is not high enough.
Solution 1: Change the search from pixel by pixel to moving the selector to a calculated point.
Solution 2: Move to a colour that is close to what we want.
Potentially also rounding issue, needs further investigation.

this is resolved by this pull request #3. RGB and hexadecimal code has been added as selectors resulting in better movement of the selector wheel and slider


Leaking NodejsPackage _analyzer

Repo

Boot VS
Start NTVS interactive window
Close NTVS interactive window
Check memory

Expected
NTVS should be effectively unloaded at this point.
Actual
8MB+ of analyzer related memory hanging around. This is held onto by NodejsPackage::_analyzer. This probably should be a weak reference instead.
There should only ever be a single NodejsPackage::_analyzer in existence. The one edge case to consider is when IntellisenseOptionsPageAnalysisLevelChanged is called. If we used only a weakreference, after this function, we would immediately release the newly created analyzer.

Actually, this is not ideal but is probably the expected behavior. When you close and then reopen the NTVS window, we should persist the console history.


Documentation for mxnet?

I have seen the only documentation for mxnet is somewhere like here: http://mxnet.io/api/python/index.html. But this one is only for brief introduction. However, if I want to get more specific information, such as what are the input parameters of certain operator (like convolution),  or what layers are available where can I find these information? Do I need to go check the code directly?
Thanks!

click the link on that page


Supporting to fetch pods in Kubernetes based discovery with gzip compression

Hello Pekko maintainers.
We currently face an issue where the response of Kubernete's HTTP API is >1 MB (as we e.g. have 15 Pekko pods in our cluster and the api/v1/namespaces/$NAMESPACE/pods endpoint also returns all environment variables of all pods - which can become quite big.
So I looked at options and found that the Kubernetes HTTP API supports compression for responses since 1.16, simply by setting the HTTP header Accept-Encoding: gzip.
In our case that brings down the response size a lot:
-rw-r--r--. 1 ubuntu ubuntu  112709 Oct 15 13:59 out2.tar.gz
-rw-r--r--. 1 ubuntu ubuntu 1056800 Oct 15 13:37 out.txt

Would you accept a contribution to make gzip compression (and decoding) configurable at this place:
https://github.com/apache/pekko-management/blob/5703a2a0459f941c22b9f2fa768c36f33f727703/discovery-kubernetes-api/src/main/scala/org/apache/pekko/discovery/kubernetes/KubernetesApiServiceDiscovery.scala#L229-L240
I would be happy to contribute that.
Our alternative would be to increase the default payload limits of http responses to greater 1 MB (which is the default for pekko-http I think) - however for the future I see potential problems with that, if our cluster grows in number of pods.

I assume that the 1MB default is configured here as max-chunk-size:
https://github.com/apache/pekko-http/blob/91315b324e7ca45c9a4892b09a0609bb69afa391/http-core/src/main/resources/reference.conf#L693C5-L693C19

Supporting gzip compression seems useful.
With the max-chunk-size, I suggest trying out different values but it seems plausible that this setting is in play.

https://pekko.apache.org/docs/pekko-http/1.1/common/encoding.html may be of interest


[1.x] Add textarea fieldtype

This PR adds a textarea fieldtype which maps to a Filament textarea.
This allows you have multiline text attributes without requiring them to be rich text.

Thanks @ryanmitchell looking good, just one small issue. If you have the textarea set to autoheight and click save, it reverts to a scrollable field.
Before save

After save

After Refresh

Interesting - any thoughts on why thats happening? I copied the synth approach from the other field types.

Not too sure actually, but I added a Textarea component to the form manually and tried and it did the same, maybe it's a problem on filament.

Looks like it was reported last year and apparently fixed 🧐 https://github.com/filamentphp/filament/issues/7620

It feels a little odd to have a textarea field, but then have a text field which can be rich text.
Should we consider moving the rich text option to this textarea field?

Hi @ryanmitchell
I've considered this, and I think it's wrong. We should enhance the current Text and TranslatedText lunar field types to allow for "multi-line".
So I'm going to close this, but please let me know if you'd like to work on the "multi-line" option.


🐛 Bug Report: Attributes can be both required and an array

👟 Reproduction steps
Appwrite database > collection > attributes > create attribute
👍 Expected behavior
In some cases it might be possible that a user wants to create an attribute that is both an array and also required, so making it an either-or case is not nice IMO.
👎 Actual Behavior
Currently it just allows u to choose one:

🎲 Appwrite version
Appwrite Cloud
💻 Operating system
Windows
🧱 Your Environment
No response
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Thanks for the response @tessamero just wanted to clarify one thing that why are we defaulting it to required, I mean what if user doesn't want the array type attribute to be required? So basically we should have both options open, don't ya think?

Sure no problem.... glad to help :)


Removes 1.23 go mod and sum files due to EKS-D 1.23 deprecation

Issue #, if available:
Description of changes:
Removes go.mod and go.sum files for projects versions that are now out of support for EKS-D
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve

/lgtm


Use Dagger for Flux/Kubernetes manifests validation

Dagger will allow to build complex workflows using Golang
Work in progress here for the Flux validation steps.
I need to add a few parameters first before migrating definitely.

First version of a Dagger module for Kubeconform has been released here.
Example of usage here.


Add cloud subnet REST API

Need to be able to retrieve cloud subnets resources directly for https://github.com/ManageIQ/manageiq-providers-openstack/issues/36
Depends upon https://github.com/ManageIQ/manageiq-ui-classic/pull/1508

Skipping test [1] because it fails with   undefined method `[]' for nil:NilClass
     # ./spec/support/api_helper.rb:112:in `action_identifier'
     # ./spec/support/api_helper.rb:117:in `collection_action_identifier'
     # ./spec/requests/api/collections_spec.rb:25:in `test_collection_bulk_query'
     # ./spec/requests/api/collections_spec.rb:570:in `block (3 levels) in <top (required)>'

[1] https://github.com/ManageIQ/manageiq/pull/15248/files#diff-a379444a5c62b1302da96d4a02592b6eR566

@jntullo, could you please help with the failing test?

@jntullo, don't worry about it :).

@gildub thanks for the enhancement, this LGTM!!
@imtayadeway can you give a 👍 or approve if ok by you ?  Thanks.

@imtayadeway, thank you too!

Add label bug, fine/yes

add_label bug, fine/yes

@miq-bot add_label fine/yes, bug

@gildub Is this PR supposed to be fine/yes? The label is there, but I can't see where the bot request to add bug and fine/yes came from...

@simaishi, that's me, sorry I removed the miq-bot comment I used, which makes realise how helpful it could be to trace back things, therefore I won't do it again.
Anyway this is also needed by https://bugzilla.redhat.com/show_bug.cgi?id=1467725.

@gildub ha ha.. thanks! I'm glad the source is identified 😄
So... this PR depends on https://github.com/ManageIQ/manageiq-ui-classic/pull/1508, but it's currently marked as fine/no. That can be fine/yes?

@simaishi, I don't see any restrictions for ManageIQ/manageiq-ui-classic#1508 to go to Fine (just replaced the fine label). Other similar PRs have made to Fine, the dependent pieces (new buttons, etc) have already been ported back.

Backported to Fine via https://github.com/ManageIQ/manageiq/pull/16150


Develop the ability to compare pdfs to each other

The eventual goal would be a step to compare an existing pdf to a downloaded pdf. First we have to figure out how to compare two PDFs, though.

Look into https://github.com/jcushman/pdfquery

Or check nodejs.com.

I'm going to evaluate the following libraries:

https://www.npmjs.com/package/@exzeo/pdf-diff
https://www.npmjs.com/package/pdf-diff
https://www.npmjs.com/package/compare-pdf (I might skip this one because it has some ungainly dependencies).

https://github.com/jcushman/pdfquery is in Python so this is disqualified.

Option 1 does not seem to recognize filled values.  In other words, it only compares the static parts of the PDF and completely ignores any filled values.  However, it was updated two months ago and might still be actively developed so it might be worth it to fill out an issue if no other project can check these values.

Option 2 converts the PDF's to JSON and diffs the JSON.  The dependent libraries explicitly support the contents of checkboxes and fillable forms.  However, the interface to this library is a little tough to use.  Here's a text summary of the diff object returned when the library compares a PDF to itself:
[
'~',
{
Fields: [
[Array], [Array],
[Array], [Array],
[Array], [Array],
[Array], [Array],
[Array], [Array],
[Array]
],
Boxsets: [
[Array], [Array],
[Array], [Array],
[Array], [Array],
[Array], [Array],
[Array], [Array]
]
}
]
Here's the output when the two files are different:
[
'~',
{
Fields: [
[Array], [Array],
[Array], [Array],
[Array], [Array],
[Array], [Array],
[Array], [Array],
[Array]
],
Boxsets: [
[Array], [Array],
[Array], [Array],
[Array], [Array],
[Array], [Array],
[Array], [Array]
]
}
]
This could do the trick, but the interface would take some getting used to and need some cleanup wrappers.

For option 3, we have confirmed that GitHub can install ImageMagick via part of the workflow (https://stackoverflow.com/questions/67060829/github-action-using-imagemagick-create-a-png-and-commit-it-to-the-repo).  Therefore, if ImageMagick really is a dependency, we can install it outside of npm.
We also believe that we might be able to use compare-pdf without the external (i.e, non-Node) dependencies.  We'll try this out in the next session.

When I downloaded the code separately and ran it, I got the same errors as when I run my own tests.  I suspect that a dependency got updated and now the library doesn't work.

Let's find something in Node before we consider stuff in Python (or rewriting the Python comparator in Node).
Let's try to find some PDF's whose static portions are different.  First, let's establish a test threshold by using the lowest possible threshold for two identical documents.  Then, use that on two different PDF's.
Next steps:

Convert to black and white.
Normalize colors or other attributes.

We will put this down for now.   When we come back, we'll take a look at the JavaScript or node.js.

Using https://emn178.github.io/online-tools/md5_checksum.html with 'File Hash' MD5, this seems to (in at least these cases) see the difference in fillable fields. Ignore the filenames.
File 1 with one field filled out with "test" and "test" and a date:
Simple_Sample.pdf
File 2 with the same fields filled out with the same information, but created in its own version of the file at a different creation time comes out equal to file 1:
Simple_Sample (2).pdf
File 3 with different values in the fields comes out unequal to file 1:
Simple_Sample (1).pdf

There might be a js lib called javascript-md5

This will also depend on how da creates these files too.

Also could consider: https://mozilla.github.io/pdf.js/getting_started/

Using the above methods, there were a couple duplicate documents that each had the same field values that @BryceStevenWilley tried that came out with different hashes. They should have come out as being equal.

I got something working in node with pdf.js, on the pdfjs branch. The 20 line script (strongly stolen from the examples) that can get the fields and the full text content of the PDF (for if someone leaves the fields as fillable, or if they permanently bake them into the PDF);
#!/usr/bin/env node

const pdfjsLib = require("pdfjs-dist/legacy/build/pdf.js");

// Loading file from file system into typed array
const pdfPath =
  process.argv[2] || "Adult Name Change (Alabama).pdf";

async function testPdf(pdfPath) {
  const loadingTask = await pdfjsLib.getDocument(pdfPath);

  const doc = await loadingTask.promise;
  const contents = await (await doc.getPage(1)).getTextContent();
  console.log(contents.items.map((item) => item.str).join(" "));
  const field_objects = await doc.getFieldObjects();
  console.log(JSON.stringify(field_objects, null, 4));
  return field_objects;
}

testPdf(pdfPath);

We do still need to make the step and the API for this, but I'm confident pdf.js is what we need.

Made some more progress on PDF comparison (still on the pdfjs branch). I added a few internal functions to utils/pdf_reader.js:

get_content: gets all of the text content from the PDF
get_fields: gets all field objects from the PDF (NOTE: won't be there if people have their PDFs set to editable: False or pdfa: True in the DA interviews
get_field_value: gets the specific value of a PDF field
compare_pdfs: takes two PDFS and makes sure that the text content is identical, and all of the PDF fields are identical.

I added a single step:

I expect the PDFs at "some/path" and "another/path" to be the same.

Differently open to feedback on these APIs, if we want to add or modify any.
I still need to test what's there, but once I'm sure it's working, I'll open a PR with it.


numpy future warning

FutureWarning: Using a non-tuple sequence for multidimensional indexing is deprecated; use arr[tuple(seq)] instead of arr[seq]. In the future this will be interpreted as an array index, arr[np.array(seq)], which will result either in an error or a different result.
needs to be fixed (triggered eg in the core tests, but connected to grid indexing)

think these have been fixed


Exclude 'textphone' numbers

Noteworthy additions:

FHG-1839 fix open close filters (PR34)
gracefully handle the case when the user goes filter page => cookie page => back link from success banner, by redirecting them back to the enter postcode page (PR34)
open external service/FH weblinks in a new tab (PR35)
split address line 1 on pipe (|) (PR35)
replicate newlines in cost option when displaying cost (PR35)
add health check (PR36)
updated beta banner content (PR36)
fix 2 elements with the same id on filter page (reported by axe as: IDs used in ARIA and labels must be unique) (PR38)
don't create a link for an empty email or phone (reported by axe as: Links must have discernible text) (PR38)
don't include MOJ's JS file (it's not needed) (PR38)
add Accessibility page and link in footer, also 1 (PR39)
add Contact us page and link in footer, also 1 (PR39)
add Terms and conditions page and link in footer, also 1 (PR39)
adds Feedback link in footer (PR39)
adds Back link to Cookie page (PR39)
update error page content (PR39)
minify css (PR40)
transpile (using npm), bundle and minify TypeScript (PR40)
single root level node_modules folder (& remove from styles & scripts) (PR40)
update govuk-frontend 4.4.0 => 4.4.1** (PR40)
update @ministryofjustice/frontend 1.6.3 => 1.6.4*** (PR40)
update sass 1.56.1 => 1.57.1 (PR40)
remove PII from data sent to GA (PR44)
exclude 'textphone' numbers
increased code coverage

oops, not in a feature branch

Might as well use this to merge it into main 😄

To Large to review, will approve on the basis that individual prs have been approved pulling the code into dev branch


README

As a boot camp student,
I want the prework notes to be structured on a webpage,
So that I can easily find and read the information.
GIVEN the prework project repository,
WHEN I view the README for the repository,
THEN I can see a professional README that provides information on the project and how to use it

Criteria have been met for README.


False negative: major bumping of dependency with exposed API is not detected

Steps to reproduce the bug with the above code

Create a new crate with cargo new inner --lib and chdir inside.
Add a dependency for which we are going to expose a member and later perform a dep bump. This examples uses time:cargo add<EMAIL_ADDRESS>

Edit src/lib.rs so it contains the following:pub struct Wrapper {
  pub date: time::Date
}

Create a new commit:git add . && git commit -m "Initial commit"

Bump time to 0.3:cargo add<EMAIL_ADDRESS>

Add another commit (useful for further checks):git commit -a -m "bump time"

Run cargo-semver-checks:cargo semver-checks check-release --baseline-rev HEAD^

Further check to ensure it is a breaking change

Checkout to previous commit:
git checkout HEAD^

Create a worktree with the latest commit in a different path:
git worktree add ../inner-new main

Note that if you are using an old version of git, you could need to use master instead of main

Change back to the parent folder and run cargo new --lib outer, then chdir inside outer.

Add the first version of inner as dependency:
cargo add inner --path ../inner

Also add<EMAIL_ADDRESS>as dependency: cargo add<EMAIL_ADDRESS>

Edit the src/lib.rs so it contains the following:
use inner::Wrapper;
use time::Date;

pub fn get_wrapped(wrapped: Wrapper) -> Date {
    wrapped.date
}

Run cargo check, assess that everything is fine.

Use the new version of inner:
cargo add inner --path ../inner-new

Run cargo check again. Now you should expect a mismatching time::Date type.

Actual Behaviour
No breaking changes are reported
Expected Behaviour
A breaking change should be detected: bumping the major version of a dependency when the crate exposes something from its API is breaking.
Generated System Information
Software version
cargo-semver-checks 0.20.0 (cf03e7f)
Operating system
Linux 6.2.13-arch1-1
Command-line
/home/edoardo/.cargo/bin/cargo-semver-checks semver-checks --bugreport

cargo version
> cargo -V
cargo 1.69.0 (6e9a83356 2023-04-12)

Compile time information

Profile: release
Target triple: x86_64-unknown-linux-gnu
Family: unix
OS: linux
Architecture: x86_64
Pointer width: 64
Endian: little
CPU features: fxsr,sse,sse2
Host: x86_64-unknown-linux-gnu

Build Configuration
Should not be relevant, but here the ~/.cargo/config.toml:
[registries.crates-io]
protocol = "sparse"

[target.x86_64-unknown-linux-gnu]
rustflags = ["-Clink-arg=-fuse-ld=lld", "-Clink-arg=-Wl,--no-rosegment"]

[target.x86_64-unknown-linux-musl]
rustflags = ["-Clink-arg=-fuse-ld=lld", "-Clink-arg=-Wl,--no-rosegment"]

[target.arm-unknown-linux-musleabihf]
linker = "arm-linux-musleabihf-gcc"

Additional Context
The issue has been discovered while bumping the wot-td dependency of the crate wot-serve.
CC @lu-zero

Thanks for the thorough report!
Semver in Rust is extremely complex, and there are easily hundreds of rules that aren't implemented yet: https://github.com/obi1kenobi/cargo-semver-checks#will-cargo-semver-checks-catch-every-semver-violation
The tracking issue for not-yet-implemented lints is #5. We're treating these as unimplemented features, and saving the C-bug label for issues like false-positives, or situations where an existing lint fails to catch the issue it purportedly is designed for. We don't have a lint for this case, so I'm going to re-tag this as a feature request.
Also, if you might be interested in contributing to the project by writing new lints, I'd be happy to mentor!

Thank you @obi1kenobi!
You are right, it totally make sense to track the missing rules in a single issue instead of spreading them all around without any central document. I just did not find anything specifically related to the missed detection, I should have search more carefully :sweat_smile:
I think I can try to implement the rule for this on my spare time (and maybe others, who knows), it could be an interesting experience. Also, I definitely love this project, I would be very happy to give a small hand. I am gonna try to write down something, if I need help I will ask, thank you in advance! :heart:

Unfortunately I don't think this rule is straightforward to implement since currently cargo-semver-checks doesn't see manifest information — it isn't exposed in the Trustfall schema it queries and it isn't particularly easy to add. I wouldn't recommend it as a starting point.
A few easier starting points:

https://github.com/obi1kenobi/cargo-semver-checks/issues/302
https://github.com/obi1kenobi/cargo-semver-checks/issues/366
any of the items in https://github.com/obi1kenobi/cargo-semver-checks/issues/241 though note that they are in order of increasing difficulty

These run the gamut from "how can I help in half an hour" to "I've got a few afternoons / a few weekends to put in." I'm happy to be an issue concierge if you let me know what sort of thing you'd be most excited about.


strand.md: left/right vs. forward/reverse

nucleobases are left/right, while the corresponding nucleotides are forward/reverse.
Perhaps, use forward/reverse for nucleobases, so that, e.g. a forward nucleobase corresponds to forward (inter or intra) nucleotide rule to allow writing

Forward-inter-nucleotide([X ::= . A B C]) = [X-F ::= ]
Reverse-inter-nucleotide([X ::= . A B C]) = [X-R ::= A B C]

I noticed this, but when it came to the nucleobases, I thought left/right was clearer.  When it came to nucleotides, we got into matters of the left nucleobase being on the far right of the RHS, and left nucleotides only occurring at the right edge of a bocage.

I tried to play an Occam razor card here -- nucleobases lead to nucleotides so that could be more consistent if the same pair of adjectives is used to characterise both, and forward/reverse nucleotides (and hence, nucleobases) seem to make more sense. Left nucleobase producing forward nucleotide feels a bit unintuitive to me.
FWIW, there are 2 "reverse nucleobase" occurences later in the doc.

I'll look at the "reverse nucleobase" thing.

On this one, you're right.  I should change "left nucleobase" to "forward nucleobase" and "right nucleobase to reverse nucleobase".

Fixed in the above referenced commit.


feat: Add edit api token

Description
Add edit api token

The UI confuses me.
Maybe we can use a label to display the token and an editing button to update token

how about this?


[UI] [Host] When I get an error for my access token, the error message doesn't disappear when I leave the Add Host page and come back.

Version: v0.13.1
Steps to Reproduce:

Try to add host with invalid DO token.
Don't add a host and click on Container page.
Click on 'Add Host' page again.

Result: All fields are reset, but the error message still remains.
Expected Result: Error Message would disappear from the UI.
Since the add host page resets everything upon loading, the error message also needs to be hidden on each loading of the page.

v0.16.0
Verified Fixed


Tailwind for styling + Development Alert

Any interest to have the styling converted to tailwind ?
Also, if the alert that's at the top of the page can be dismissed and that saved to state that would be awesome.

Any interest to have the styling converted to tailwind?

Probably not. I like Tailwind, but we'd still need custom SCSS for some of the gradients and I don't like mixing Tailwind and SCSS. I'm also faster with SCSS, so it would increase development time to switch.
As a side note, I'm having an idea for a combined tracker for all my trackers in a single web app. That one can most definitely use Tailwind right from the get-go. If I ever finish it.

Also, if the alert that's at the top of the page can be dismissed and that saved to state that would be awesome.

We can probably remove the alert really soon, or just move it to only the Warzone page where there is still content missing. I can take a look at it!


Projects JSON updated and internal images as asset

fixes #670

points 1,2 and 3
images are now used as an internal asset
updated the JSON files to add 4 projects
images are compressed for safety

@anushbhatia Sir is it okay now?? Completed the missing points and corrected the wrong section removal!

different image for cloak project because it is stretched

different image for cloak project because it is stretched

Done Sir!

image is really cool thou


⚠ Bofrost.fr has degraded performance

In be8e4f8, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1201 ms

Resolved: Bofrost.fr performance has improved in 7859a2a after 6 minutes.


cancel or delete outgoing context?

I am not sure if it is intended or not.  In current design and implementation, I can only set outgoing context, but not allowed to cancel or delete contexts in webhook via this DF fulfillment sdk. Also, I noticed that DF agent will merge outgoing context set via webhook and all incoming context to outgoing contexts for an intents.  This means the only way we can cancel an existing context via web interface inside the intent configuration by setting lifespan to 0 in the outgoing contexts.
Again I am wondering if this is intended. It would be nice to be able to manage contexts, especially those initiated by developers in webhook via for example setContext(), also via webhook.
Thanks.

You can set an existing contexts with the library and set the lifespan to 0 to "cancel or delete" an outgoing context.  For example:
const existingContext = agent.getContext("incoming context name")
agent.setContext({'name': existingContext.name, 'lifespan': 0})

If you've set a context with the library and wish to prevent it from being sent to Dialogflow as a outgoing context you can use the clearOutgoingContexts() or clearContext("context name") methods.

I'm sorry if this is too late, but can we put this information on the official guide?
Thank you so much for the answer and I think it will be better if this kind of information can be available on the guide too.

You can set an existing contexts with the library and set the lifespan to 0 to "cancel or delete" an outgoing context. For example:
const existingContext = agent.getContext("incoming context name")
agent.setContext({'name': existingContext.name, 'lifespan': 0})

If you've set a context with the library and wish to prevent it from being sent to Dialogflow as a outgoing context you can use the clearOutgoingContexts() or clearContext("context name") methods.

clearOutgoingContexts() is depredicated :))))) try context.delete()


Web3js vs EthersJS

Topic Suggestion
Web3js vs EthersJS
Writing sample(s):
https://dev.to/ghoulkingr/simple-ways-to-compile-and-deploy-solidity-contracts-3kpb
Proposal Submission
Proposed title of article
Web3 vs Ethers
Use keyword research to improve your article's SEO.
Key takeaways

The readers will be able to tell the strengths and weaknesses of the modules
They will be able to know  the scenario where one is most applicable is most applicable
They'll understand why the both of them exists

Article quality
This article helps the readers distinguish between the Web3js and the EthersJS module. In this article the readers will be given a clear understanding of the concepts that the two modules entail and they'll be able to understand why the both of them even exists
References
N/A

Sounds like a helpful topic - let's please be sure it adds value beyond what is in any official docs and/or what is covered in other blog sites. (the articles should go beyond a basic explanation - and it is always best to reference any EngEd article and build upon it).
Please be attentive to grammar/readability and make sure that you put your article through a thorough editing review prior to submitting it for final approval. (There are some great free tools that we reference in EngEd resources.)
ANY ARTICLE SUBMITTED WITH GLARING ERRORS WILL BE IMMEDIATELY CLOSED.
Please be sure to double-check that it does not overlap with any existing EngEd articles, articles on other blog sites, or any incoming EngEd topic suggestions (if you haven't already) to avoid any potential article closure, please reference any relevant EngEd articles in yours. - Approved @TheGhoulRe


Remove superfluous JS output from ReactDOM.domProps

The domProps "builder" function has a ton of attributes:
https://github.com/jchavarri/jsoo-react/blob/631f9855c727994b12aa928116b9b7068ae15e5c/lib/reactDOM.mli#L65-L75
The resulting JS code generated by jsoo includes zeroes for all of them missing, which is just useless information that increases for every host element rendered (e.g. <div />).
There are some solutions / workarounds that I can think of:

Reduce the amount of attributes (super short term 😅 ) by wrapping <div /> with a "composite" (non host) component like Div, passing only the props the app will use.

"Lift" the object creation up to the ppx, which has already all the information available. So instead of calling domProps here:

https://github.com/jchavarri/jsoo-react/blob/631f9855c727994b12aa928116b9b7068ae15e5c/ppx/ppx.ml#L528-L533
we would do something like:
match nonEmptyProps with
| (Labelled "onClick", expr) :: _ -> (* actually, mapping over the `nonEmptyProps` list, not matching it :) *)
    let mapped_expr = mapper.expr mapper expr in
    [%expr
      let empty = Ojs.empty_obj () in
      Ojs.set empty "onClick"
        (Ojs.fun_to_js 1 (fun inner ->
              [%e mapped_expr] (ReactEvent.Mouse.t_of_js inner))) ;
      Obj.magic empty]

Explore using tyxml, which compiles the attributes down to a list, a representation that doesn't have this issue.

Thanks a lot for the details on the issue @jchavarri!
It's funny you're mentioning Tyxml, one of the first thing I thought when trying out jsoo-react was "wouldn't it be great if it used Tyxml under the hood" 😄
Joke aside, it would have several benefits:

Unlocking OCaml's syntax. At the moment user code looks like this:

let make ~name =
  (div
     ~className:"text-center mt-12"
     ~children:
       [ (p
            ~className:"text-3xl text-gray-900 mb-4"
            ~children:
              [ React.string
                  ("\240\159\145\139 Welcome " ^ name ^ "! You can edit me in ")
              ; (code
                   ~children:[ React.string "src/components/Greet.re" ]
                   () [@JSX])
              ]
            () [@JSX])
       ; (a
            ~className:"text-3xl no-underline text-blue-500"
            ~href:"https://reasonml.github.io/reason-react/"
            ~children:[ React.string "Learn Reason React" ]
            () [@JSX])
       ]
     () [@JSX])
  [@@react.component]

Allowing to reuse server-side views in the frontend.

However I'm not certain Tyxml's ppx matches Reason's JSX ppx.

@tmattio yes! Tyxml will definitely make many things more straightforward. I want to release a first version of the library in Opam that remains as close as possible to the existing ReasonReact, to make sure most of the API is covered, and also to facilitate any potential migrations.
But for the version after that, I plan to look in to Tyxml more in depth. The ppxs definitely don't match, but they're not too far either. I started documenting some of the differences between them in https://www.javierchavarri.com/react-server-side-rendering-with-ocaml/.

@tmattio we made some exploration to use tyxml, but the divergence is a bit too large, in the end React has a lot of attributes and event handlers that are not HTML. Plus we'd need to move away from the way we handle children etc which means worse support for existing reason-react apps that could be potentially migrated to jsoo-react.
We are working on improvements for OCaml syntax though, you can check RFC #67 to see what we're planning to work on in order to improve OCaml syntax support. Feel free to add any feedback to that PR.


Describe speedy testing workflow in CONTRIBUTING.md

Documentation of a speedy testing workflow, coming out of discussion in #6925.

Codecov Report

Merging #6930 into dev will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##               dev     #6930   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           15        15
  Lines          671       671
=========================================
  Hits           671       671

Continue to review full report at Codecov.

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

Thanks @joshuahhh!


Fix getComponents result order

Please check if the PR fulfills these requirements

[x] The commit message follows our guidelines
[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been added / updated (for bug fixes / features)

Codecov Report
Base: 43.36% // Head: 43.37% // Increases project coverage by +0.00% :tada:

Coverage data is based on head (6c65029) compared to base (2c66858).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1201   +/-   ##
=======================================
  Coverage   43.36%   43.37%
=======================================
  Files         347      347
  Lines       18324    18326    +2
  Branches     2538     2538
=======================================
+ Hits         7946     7948    +2
  Misses       9769     9769
  Partials      609      609

Impacted Files
Coverage Δ

packages/core/src/Entity.ts
81.85% <100.00%> (+0.13%)
:arrow_up:

packages/math/src/Color.ts
66.38% <0.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Update, correct bug

When the bot start, the user_id is "None" cause the position of the line :)

When the bot start, the user_id is "None" cause the position of the line :)

In your case the username that can be inputted from the command line. Also if the bot was logged successfully, bot.user_id variable should be setted.

Sorry, can't be merged.


profile JSMA to identify bottleneck

tf implementation seems somewhat slower than theano code written 2 years ago

Bottleneck is itertools.combinations so no trivial tweak without making changes to the underlying search heuristic


Don't update_attrs and then save on widget sets either

This is why I make the big bucks, PRs like this one.
This should be one call, not two, just like the widget code.
benchmarks: bin/rails r "MiqWidgetSet.seed; puts Benchmark.realtime_block(:capture_state) { 10.times { MiqWidgetSet.seed } }.last"
huge difference 🤣
before:
{:capture_state=>0.021094083786010742}
after:
{:capture_state=>0.019088029861450195}
@miq-bot assign @jrafanie
@miq-bot add_label performance, cleanup

@bdunne is the hero we need, not the one we deserve


Bug 1197139 - Add version history link to the Development Channel section

This turned out simpler than I thought, unless I am missing something.

This looks perfect ;)
Can you please add a test for that? Just making sure that the link is displayed (if there are beta versions), and that it's the correct one.

I actually looked around already to see whether there is a test for the existing version history link - I didn't find any. But I'll check again to see where this test would make sense.

How about here: https://github.com/palant/olympia/blob/c803bd575873564052ed81220d4939b28710b671/apps/addons/tests/test_views.py#L580 ?

Sure, will do though probably not today.

no rush! Let me know if I can help

The latest commit now adds tests for both version history links.

Excellent, thanks!
r+

Fixed in 021deabfa8ad04445eb5fb398fab491d38248df6


Basics/Commands: add experimental CC SDK paths option

Motivation:
The experimental option doesn't do anything yet, but this PR lays some groundwork for cross-compilation SDK bundles support.
Modifications:
Extended FileSystem to support new sdks subdirectory of either idiomaticSwiftPMDirectory or dotSwiftPM directories. Added new option to LocationOptions.
Result:
--experimental-cc-sdks-path option can be passed a path to a directory with cross-compilation SDK bundles. The option is hidden and as of this PR has no effect whatsoever.

@swift-ci please smoke test

@swift-ci please smoke test

@swift-ci please smoke test


Gradle task assembleDebug failed with exit code 1

Steps to Reproduce

Run flutter create bug.
Update the files as follows: ...
...

Expected results:
Actual results:

Logs

Hi @DTharaka
You should reply to the first issue you reported (https://github.com/flutter/flutter/issues/69978).
I'm going to close this as a duplicate of https://github.com/flutter/flutter/issues/69978. Please share the code snippet on that issue instead of creating another one.
Thank you


Swift 3 cocoapod issue

Hi,
I have a problem while trying to download swift version of ImageLoaderSwift. It looks like it is downloading <Swift 3.0. Do I need to change the podfile in some other wah to get swift 3.0 version?

Thank you for the issue.
I used cocoapods old version. I forgot .swift-version.
So, I bumped versions.

0.10.1, swift2.3
0.11.1, swift3.0


Dark mode bug fix with fact section

Fixed the issue of the dark mode not applying to the fact background - however, the button to switch fact pages is very faint when in dark mode possibly need to look into changing this at a later point?

Fixed the issue with the colour of the arrow on the fact page and added padding to it so it doesn't overlap with the text

Great!


Can I expand layout Vertically and Bottom up ?

I need to animate the layout bottom up. Can I do this with the current version? Please help, thanks.

I'm not sure I understood the question correctly, but have you tried playing with the parallax option?
app:el_parallax="0"

It takes float values between 0 and 1. Try it to see if it solves your problem.

Oh I mean I can expand my layout vertically from top to bottom with default setting like this:
app:el_duration="300"
app:el_expanded="false"

But now the app requires me to expand it from bottom to top.
I try to find a demo and I think this may help, it's an animation for web, hit run to start:
http://codepen.io/sgorneau/pen/EjBzwB

This issue tracker is meant for tracking bugs and feature requests for the library.
For support please use StackOverflow. Just create a post there and I'll gladly answer it (post a link here once it's up).


Account Suspended

My aternos account suspended by using it. Is there a way to prevent my accounts from getting banned.

I'm not a contributor to this project, but I'm just here say that python's http/TLS stack is very easy to detect, making the problem very difficult to fix on a fundamental level if they perform that kind of detection.

@AmaaelTyrneaMitore, you should use save_session and Client.restore_session to avoid detecting the automated access by detecting too many login requests.
@sleeyax, thanks, that's interesting. Can I do something? Like using selenium instead of requests.

You see, I python is not my forté so can you please (pretty please) provide me a snippet to turn on/off the server. Please😅

from getpass import getpass
from python_aternos import Client

try:
    aternos = Client.restore_session()
except Exception:
    user = input('Username: ')
    pswd = getpass('Password: ')
    aternos = Client.from_credentials(user, pswd)

server = aternos.list_servers()[0]
server.start()

aternos.save_session()

@AmaaelTyrneaMitore, you should use save_session and Client.restore_session to avoid detecting the automated access by detecting many login requests.
@sleeyax, thanks, that's interesting. Can I do something? Like using selenium instead of requests.

You could look into puppeteer and puppeteer-stealth, though obviously that would be slower than plain HTTP requests . Honestly the easiest way is to just not use python and go lower level like go or rust but I suppose that's no option... Maybe there's better http packages than python requests though I'm not sure.
Here's my implementation in go (sorry for the self-advertisement): https://github.com/sleeyax/aternos-api/

@sleeyax I see that you also provided a binary to make things easy, but just make sure, am I supposed to do some additional configuration in order to prevent my account from getting banned?

BTW thanks @DarkCat09 for the help! I appreciate it!

I think since it's working now I am going to close the issue and again everyone thanks for your precious time💝

@sleeyax I see that you also provided a binary to make things easy, but just make sure, am I supposed to do some additional configuration in order to prevent my account from getting banned?

Should work out of the box, though I can't guarantee your account won't ever get banned because there's plenty of factors that play a role (source IP, programmatic errors I overlooked, sudden increased protection, etc). No library author can guarantee it 100% though I haven't heard a complaint from consumers of my library this far.
If you have any more questions or need support, open an issue/discussion on the repo. I don't wanna clutter this issue with off-topic talk any further 😅


fixes #1070 Studio: improve encrypt error message

Signed-off-by: Francois Nollen<EMAIL_ADDRESS>

@francoisno I would prefer to use a dedicated exception instead of testing the exception message... :)

@francoisno I would prefer to use a dedicated exception instead of testing the exception message... :)

Amended with NoEncryptionPassException for a (slightly) more specific message:
                } catch (t: NoEncryptionPassException) {
                    logger.error(t)
                    badRequest("Error obfuscating sentences: ${t.message}")
                } catch (t: Exception) {
                    logger.error(t)
                    badRequest("Error searching sentences: ${t.message}")
                }


Do not lookup for allocator/finalizer every time we allocate/deallocate a foreign class

Lookup is expensive: it implies hash table lookup. Although an optimizing compiler can fold the hash of "<allocate>" and "<finalize>" (and thus avoid recomputing it every time), the process is still more expensive than we want, especially since that every foreign class allocation (not just declaration) does that, and also GC for every foreign class, which may delay GC that in turn blocks code from executing, which can, for example, trigger a FPS dropping in a game.
The way we avoid it is by adding the "<allocate>" and "<finalize>" strings to the symbols table, before anything else. This way, due to the nature of the symbol table that increments each symbol by one, we can know what are the values of those symbols; and thus, when we need to access them, we just address at the known symbol.
This has the disadvantage of adding two entries to the methods table of each class, but considering that:

We already have pretty high number of wasted entries, with direct proportion to the number of classes and methods (the more methods you have the more wasted entries you have per class, the more classes you have the more wasted entries you have in total).
Each entry is just the size of two pointers (16 bytes on 64-bit systems, 8 bytes on 32 bit systems) include padding, and
The speed we gain from that (again, for every allocation/deallocation of a foreign class),

I think this is a worthwhile trade-off.

I would promote the ASSERT when registering the well-known values to a stronger error in case we run out of memory or what ever when not in debug mode. Since these registration should be done once at creation of the VM, it should have 0 impact if we are slower and safer.
Did you consider putting symbols in a table ? It would automate things a little bit more (a little bit overkill for 2 symbols, but can be abused, to ensure the layout of the method indexes to help with caching most used symbols at the begin of the table).

I would promote the ASSERT when registering the well-known values to a stronger error in case we run out of memory or what ever when not in debug mode. Since these registration should be done once at creation of the VM, it should have 0 impact if we are slower and safer.
Did you consider putting symbols in a table ? It would automate things a little bit more (a little bit overkill for 2 symbols, but can be abused, to ensure the layout of the method indexes to help with caching most used symbols at the begin of the table).

I would promote the ASSERT when registering the well-known values to a stronger error in case we run out of memory or what ever when not in debug mode. Since these registration should be done once at creation of the VM, it should have 0 impact if we are slower and safer.

I considered that, but decided that I'll follow the line of the rest of the code, where we ignore out of memory run. I don't see reasons to embed assertions. The reason for ASSERT() is not to protect from something unknown, but from future possible change that will either register another symbols before or will change how symbols are generated.

I would promote the ASSERT when registering the well-known values to a stronger error in case we run out of memory or what ever when not in debug mode. Since these registration should be done once at creation of the VM, it should have 0 impact if we are slower and safer.

I considered that, but decided that I'll follow the line of the rest of the code, where we ignore out of memory run. I don't see reasons to embed assertions. The reason for ASSERT() is not to protect from something unknown, but from future possible change that will either register another symbols before or will change how symbols are generated.

Something like:
static void ensureSpecialSymbols(WrenVM* vm) {
  static const char *symbols [] = {
    "<allocate>",
    "<finalize>",
  }
  for (size_t i = 0; i < sizeof(symbols); ++i) {
    const char *symbol = symbols[i];
    int symbol = wrenSymbolTableEnsure(vm, &vm->methodNames, symbol, strlen(symbol));
    ASSERT(symbol == i, "Definition of predefined symbols went wrong.");
  }
}

Something like:
static void ensureSpecialSymbols(WrenVM* vm) {
  static const char *symbols [] = {
    "<allocate>",
    "<finalize>",
  }
  for (size_t i = 0; i < sizeof(symbols); ++i) {
    const char *symbol = symbols[i];
    int symbol = wrenSymbolTableEnsure(vm, &vm->methodNames, symbol, strlen(symbol));
    ASSERT(symbol == i, "Definition of predefined symbols went wrong.");
  }
}

I think my code is clearer.

I think my code is clearer.

For 2 items, I agree, but that list can be extended for easily guaranteed more entries positions. Anyway it is a minor issue.

For 2 items, I agree, but that list can be extended for easily guaranteed more entries positions. Anyway it is a minor issue.

Could you post the benchmarks you ran before and after to compare?

Could you post the benchmarks you ran before and after to compare?

No difference was observed.

No difference was observed.

I did a little bit of measuring and compared creation of a foreign, a class, and a list for interest sake.
The right hand side is with this patch applied, left is before. Still a synthetic benchmark, but interesting still, e.g seems to typically scale linearly across the extra 0.

    var sum_f = 0
    var sum_v = 0
    var sum_l = 0
    var runs = 1000
    for(r in 0 ... runs) {
      var count = 10
      var start = IO.timestamp()
      for(i in 0 ... count) {
        var f = F.new()
      }
      sum_f = sum_f + IO.timestamp()-start

      start = IO.timestamp()
      for(i in 0 ... count) {
        var v = V.new()
      }
      sum_v = sum_v + IO.timestamp()-start

      start = IO.timestamp()
      for(i in 0 ... count) {
        var l = [0,0,0,0]
      }
      sum_l = sum_l + IO.timestamp()-start
    }
    System.print("foreign average %(1000 * (sum_f/runs))ms")
    System.print("class average %(1000 * (sum_v/runs))ms")
    System.print("list average %(1000 * (sum_l/runs))ms")

The changes in list creation are negligible.
The changes in foreign instantiation are quite impressive, and understandable.
The interesting part is the changes in normal class instantiation: it does seem to be quite big difference, not something I can describe by benchmark environment, but I don't understand their source. I'll take another look.

I'm doing another run as well, as always there will be a lot of variation between runs, but it's fairly consistent in terms of outcomes

I can optimize this a little bit more by starting the search for a method from index 2, skipping the initializer and finalizer we never lookup.

note that the expectation is that list and class shouldn't change much (minor variations expected). The previous stats are the wrong comparisons. here's the correct one:

Saner now 😺

Just for the record, how does it affect the official benchmarks?

I mean maybe it is worth a new benchmark ?

That's the plan.

I applied this commit to my current project (which has LOTS of foreign allocator/finalizer hits), and it sped up gc runs from 12ms to under 1ms. Pure gold for my use case. Thank you Chayim!


dwarf-fortress: 0.47.02 -> 0.47.04

Motivation for this change
lots of bug fixes
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

cc @shazow

LGTM :+1:

[4 built]
https://github.com/NixOS/nixpkgs/pull/82431
5 package built:
dwarf-fortress dwarf-fortress-packages.dwarf-fortress-full dwarf-fortress-packages.dwarf-fortress-original dwarf-therapist dwarf-fortress-packages.dwarf-therapist-original


Fix style to reconfig branch[Minor Fix]

@apc999 Please take a look at this PR, thanks.

Codecov Report

Merging #13860 (41f621e) into reconfig (079bd33) will decrease coverage by 26.12%.
The diff coverage is 0.00%.

@@               Coverage Diff               @@
##             reconfig   #13860       +/-   ##
===============================================
- Coverage       43.62%   17.50%   -26.13%
+ Complexity       9095     2665     -6430
===============================================
  Files            1387     1387
  Lines           80642    80662       +20
  Branches         9812     9813        +1
===============================================
- Hits            35182    14116    -21066
- Misses          42506    65299    +22793
+ Partials         2954     1247     -1707

Impacted Files
Coverage Δ

...main/java/alluxio/conf/ReconfigurableRegistry.java
0.00% <0.00%> (ø)

...mon/src/main/java/alluxio/shell/CommandReturn.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...mon/src/main/java/alluxio/util/ExceptionUtils.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...n/src/main/java/alluxio/wire/AlluxioProxyInfo.java
0.00% <0.00%> (-100.00%)
:arrow_down:

.../src/main/java/alluxio/wire/AlluxioMasterInfo.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...src/main/java/alluxio/job/meta/JobIdGenerator.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...n/src/main/java/alluxio/stress/BaseParameters.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...src/main/java/alluxio/client/UnderStorageType.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...main/java/alluxio/underfs/options/ListOptions.java
0.00% <0.00%> (-100.00%)
:arrow_down:

...main/java/alluxio/worker/block/io/BlockReader.java
0.00% <0.00%> (-100.00%)
:arrow_down:

... and 662 more

Continue to review full report at Codecov.

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

alluxio-bot, merge this please


net::ERR_CACHE_MISS on Android 5.0 and 5.1

Bug description:
When using Expo 35, react-native-webview 7.4.3, and Android 5.1 an error appears when the uri is defined as "https://www.google.com". The error is "Error Loading Page" and has a description of "net::ERR_CACHE_MISS".

To Reproduce:
Create a new expo 35 or 36 project and install<EMAIL_ADDRESS>Add WebView to the page with a uri of https://www.google.com. An error will appear saying "Error loading Page" and "net::ERR_CACHE_MISS".

Expected behavior:
The page should load inside of the WebView. This works perfectly on Android 6, 7, 8, 9, etc.

Screenshots/Videos:

Environment:

OS: Android
OS version: 5.1
react-native version: 0.59 (bundled with expo)
expo version: 35
react-native-webview version: 7.4.3

same issue.
I upgrade expo 35 to 36, which forces me to use react-native-webview.
Working fine on IOS, but show ERR_CACHE_MISS on android.
please help.

same issue.
I upgrade expo 35 to 36, which forces me to use react-native-webview.
Working fine on IOS, but show ERR_CACHE_MISS on android.
please help.

I just ran expo on my real device with no problem. I was developing on Nox android simulator, I think this problem only happen on virtural device?

No this was on a real device.

Is this happen on Expo app client?
I got this issue on expo Client: 2.14.0, but no this kind of issue on expo client 2.13.0

Hi i am also getting this error. can you please tell me the solution.
"sdkVersion": "36.0.0",
"expo": "~36.0.0",
"react-native": "https://github.com/expo/react-native/archive/sdk-36.0.0.tar.gz",
"react-native-webview": "^8.0.2",
Encountered an error loading page, Object {
"canGoBack": false,
"canGoForward": false,
"code": -1,
"description": "net::ERR_CACHE_MISS",
"loading": false,
"target": 3193,
"title": "",
"url": "https://facebook.github.io/react-native/",
}

same problem here.

ha, just stumbled across this problem

same problem here lets all cry here

Has anyone found a solution to this? Everything was working fine on Android before updating to Expo SDK 36. Now images and videos aren't rendering in react-native-webview.

same problem

same problem here

same problem here,

same problem

Seems to be an Android problem they just fixed. Check...
https://github.com/expo/expo/issues/6665#issuecomment-571623759
No luck until expo upgrades to androidx.appcompat:appcompat:1.2.0.   :-/

same problem here

Facing the same issue, in my case on Android 10 with expo app
  "dependencies": {
    "expo": "~37.0.3",
    "react": "~16.9.0",
    "react-dom": "~16.9.0",
    "react-native": "https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz",
    "react-native-web": "~0.11.7",
    "react-native-webview": "8.1.1"
  },

same problem here

I'm facing this issue with some sites, but with some other webview works well with cache. I'm thinking that this is maybe some site settings that don't allow to cache it (news sites for ex.)

same problem, Genymotion - Google Nexus 7 - Android 5.1.0
Encountered an error loading page, Object {
"canGoBack": false,
"canGoForward": false,
"code": -1,
"description": "net::ERR_CACHE_MISS",
"loading": false,
"target": 23,
"title": "Webpage not available",
"url": "https://www.google.com",
}

looking for solutions
expo sdk :- 39
plaform :- Android 5.1.1

same problem on Android 5.1

EXPO team, you have to push the fix ASAP, waiting from long time.........

This is causing issues in production had issue with android 5.0, team release the fix ASAP

same issue.

same issue.

Same issue here


Apps Version Report - Space in app name - Forbidden, You don't have permission to access this resource.

Having issues with data in reports when the app to track has a space in the name. Which is most Adobe products, DetectX Swift, Cricut Design Space and a few others. The apps will appear in the Apps Version Report with no data. Clicking on the menu to show "known versions of the app" results in a page that says "Forbidden. You don't have permission to access this resource."
If I change my .yml file and replace the space with an underscore the apps list will show the various versions available in the module, but then clicking on the menu or any of the versions available to see the devices results in an empty list.
Before: (with space)
0:
    app1: {appName: "Adobe Acrobat", widget: "app"}
    app2: {appName: "Adobe Acrobat Reader DC", widget: "app"}
    app25: {appName: "Creative Cloud", widget: "app"}

Result:
After: (without space)
0:
    app1: {appName: "Adobe_Acrobat", widget: "app"}
    app2: {appName: "Adobe_Acrobat_Reader_DC", widget: "app"}
    app25: {appName: "Creative_Cloud", widget: "app"}

Result:

I'm experiencing this issue too.

Hmm, I am using <IP_ADDRESS>84 with PHP 8.2.7 on macOS 13.6 and don't see this issue.

If I put apps into the .env for "App Version Report" I have no issues with apps with spaces in the names.
APPS_TO_TRACK="Creative Cloud, Adobe Acrobat Reader, ...
If I put use a local dashboard with an app listed I have no issues with apps with spaces in the names:
app1: {appName: "DetectX Swift", widget: "app"}
If I use the example url provided in https://github.com/munkireport/munkireport-php/issues/1536 I still have no issues:
sample url:
https://munkireport.server/module/inventory/items/AppleScript Editor

Hmm, I wonder if it is time to compare Apples to Oranges. I am using the Docker image with PHP Version 8.2.7, MySql version 5.7.42 on a Ubuntu Server.

I too do not have this issue when using the provided sample URL. My guess is that your web server doesn't like it or is configured incorrectly. For reference, I'm using nginx

@davisriglsd and I are both using Docker, so it's possible something needs to be adjusted for the bundled version of Apache.


Add x plane sdk

Added manifest for latest X-Plane (flight sim) SDK

!verify

moving to extras bucket


Flashing Robotdyn ESP8266-pro...

Hey
Found your answer on Google about flashing that Robotdyn esp8266 pro.
Can't find any documentation about it...
Can you please tell me, how you connect pins to arduino? I have my own firmware from http://wifi-iot.com/p/esp8266/
But in this hub said that you uploading some sketches to arduino... I thought it's need to put arduino in boot mode with rst+grn?

The docs say the ESP8266 has 3 boot modes. Normal (from flash), programming mode and boot from SD. Ignore the last one. The pins configuration is described well here.
https://zoetrope.io/tech-blog/esp8266-bootloader-modes-and-gpio-state-startup
I think for SPI you need to hook up to pin 15 so you need to pull up with a resistor (I'll confirm when I get home) to make both work.
--
Reza

On Mar 11, 2017, at 2:55 PM, cookins<EMAIL_ADDRESS>wrote:
Hey
Found your answer on Google about flashing that Robotdyn esp8266 pro.
Can't find any documentation about it...
Can you please tell me, how you connect pins to arduino? I have my own firmware from http://wifi-iot.com/p/esp8266/
But in this hub said that you uploading some sketches to arduino... I thought it's need to put arduino in boot mode with rst+grn?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Hey, I just checked and GPIO15 should be pulled down via a 4k or 10k
resistor. The rest of the wiring is in the Readme page:
https://github.com/rpakdel/esp8266-pro-i2c-spi/blob/master/README.md
On Sat, Mar 11, 2017 at 5:35 PM, Reza Pakdel<EMAIL_ADDRESS>wrote:

The docs say the ESP8266 has 3 boot modes. Normal (from flash),
programming mode and boot from SD. Ignore the last one. The pins
configuration is described well here.
https://zoetrope.io/tech-blog/esp8266-bootloader-modes-and-
gpio-state-startup
I think for SPI you need to hook up to pin 15 so you need to pull up with
a resistor (I'll confirm when I get home) to make both work.
--
Reza
On Mar 11, 2017, at 2:55 PM, cookins<EMAIL_ADDRESS>wrote:
Hey
Found your answer on Google about flashing that Robotdyn esp8266 pro.
Can't find any documentation about it...
Can you please tell me, how you connect pins to arduino? I have my own
firmware from http://wifi-iot.com/p/esp8266/
But in this hub said that you uploading some sketches to arduino... I
thought it's need to put arduino in boot mode with rst+grn?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/rpakdel/esp8266-pro-i2c-spi/issues/1, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AFlygoqSGhYaS5WKZZ6jABQiUnb0fwtUks5rkyZ2gaJpZM4MaXU6
.

--
Reza Pakdel

Thanks


refactor: jwt parse with issuer check

Codecov Report
Attention: 4 lines in your changes are missing coverage. Please review.

Comparison is base (29b6be3) 87.72% compared to head (eb60496) 87.79%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #33      +/-   ##
==========================================
+ Coverage   87.72%   87.79%   +0.07%
==========================================
  Files          53       53
  Lines        7942     7967      +25
==========================================
+ Hits         6967     6995      +28
+ Misses        710      708       -2
+ Partials      265      264       -1

Files
Coverage Δ

jwt/jose_wrappers.go
88.88% <100.00%> (+7.63%)
:arrow_up:

jwt/jwt.go
93.44% <100.00%> (-0.61%)
:arrow_down:

sdjwt/holder/holder.go
97.91% <100.00%> (+1.94%)
:arrow_up:

sdjwt/verifier/verifier.go
95.56% <100.00%> (+1.22%)
:arrow_up:

verifiable/embedded_proof.go
95.08% <100.00%> (ø)

verifiable/linked_data_proof.go
93.47% <100.00%> (ø)

verifiable/presentation_jws.go
100.00% <100.00%> (+13.04%)
:arrow_up:

verifiable/presentation.go
88.58% <50.00%> (ø)

verifiable/credential.go
89.00% <57.14%> (-0.23%)
:arrow_down:

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Fixes issue #2310 - docker-machine ls --filter with engine label

Changelog:

Added a new members Labels to FilterOptions struct, and EngineOptions to HostListItem struct. HostListItems are already being read from the file store config.json store engine labels
Modified parseFilters and added new func matchesLabel() which compares the one or more label values provided as input.
Also the changes include added tests for UT and integration.
Note: Have kept --filter label=<key>=<value> syntax as its similar to docker images --filter to keep the usability consistent.

With these changes the filtering engine label would look something similar to the below:
$ PATH="$PWD/bin:$PATH" bin/docker-machine create --engine-label foo=bar1 --engine-label appengine=1 --driver none --url none stage
Running pre-create checks...
Creating machine...
To see how to connect Docker to this machine, run: bin/docker-machine env stage

$ PATH="$PWD/bin:$PATH" bin/docker-machine ls --filter label=appengine=1 --filter label=foo=bar1
NAME         ACTIVE   DRIVER       STATE     URL    SWARM   ERRORS
dev9          -        virtualbox   Stopped
stage         -        none         Running   none
prod          -         none         Running   none

Please review and provide feedback. //cc @docker/machine-maintainers
Signed-off-by: Anil Belur<EMAIL_ADDRESS>

Hi @askb can you please rebase?

Hi @dgageot, no problem, have merged with the latest changes now.
Thanks

Other than that, LGTM

@dgageot - thanks. changes incorporated.

LGTM
ping @docker/machine-maintainers

LGTM
thanks again @askb

@askb Forgot to ask you to update the docs/reference/ls.md doc. Can you do it? That would be great!

@dgageot no worries, will do a follow up PR.