[HOLD for payment 2023-09-27] [$1000] ANDROID CHROME - Split Bill: LHN does not close if clicking on the Workspaces link

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:

Go to https://help.expensify.com/articles/playbooks/Expensify-Chat-Playbook-for-Conferences on mobile device.
Open LHN and click on any step.
Notice the LHN closes and page scrolls down to relevant section.
Now go to https://help.expensify.com/hubs/split-bills.
Open LHN and click on Workspaces.
Notice the LHN does not close and nothing happens.

Expected Result:
In case of https://help.expensify.com/hubs/split-bill, clicking on links in the LHN which points to some section on the same page, the LHN should close and the screen should be scrolled down to relevant section.
Actual Result:
In case of https://help.expensify.com/hubs/split-bill, clicking on links in the LHN which points to some section on the same page, the LHN did not close.
Note: This seems to occur on the Workspaces link (the other 3 links seem fine).
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

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

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

Version Number: 1.3.47-2
Reproducible in staging?: y
Reproducible in production?: y
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
https://github.com/Expensify/App/assets/43996225/887fc734-4577-4317-a9b3-2d1318d247c2
https://github.com/Expensify/App/assets/43996225/a6ccfad3-b76d-40d3-938a-8062b00f0263
Expensify/Expensify Issue URL:
Issue reported by: @Talha345
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1690460581911079
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01b88583567474c0d1
Upwork Job ID:<PHONE_NUMBER>918934016
Last Price Increase: 2023-09-11
Automatic offers:

abdulrahuman5196 | Reviewer | 26631441
Talha345 | Contributor | 26631442
Talha345 | Reporter | 26631443

Proposal from contributor
Please re-state the problem that we are trying to solve in this issue.
In help docs,the LHN does not close when clicking on some link that points to some section on the same page.This issue is only present on https://help.expensify.com/hubs/split-bill while other pages like https://help.expensify.com/articles/playbooks/Expensify-Chat-Playbook-for-Conferences do not have this issue.
What is the root cause of that problem?
The RC is that there is no implementation to take care of this issue on this page.The issue does not exist on other pages because the same page links in the LHN on other pages are populated using the following code.  Here we can clearly see that toggleHeaderMenu function is called whenever a link is clicked which was populated using tocbot.
What changes do you think we should make in order to solve the problem?
There are 2 solutions to fix this issue:

We implement a generic JS to take care of all such links in the help docs.That can be done as follows:
function isSamePageScrollLink(link) {
const href = link.getAttribute("href");
if (href.startsWith("#") && !!document.getElementById(href.slice(1))) {
toggleHeaderMenu();
}
}
const links = document.querySelectorAll("a.link");
for (const link of links) {
link.addEventListener('click', (event) => {
isSamePageScrollLink(link);
});
}
Furthermore, this would require to remove the toggleHeaderMenu method call in the TocBot onclick event here. This way we will have a generic code that deals with all such links in the entire help docs.

The second solution would be to just implement the links on https://help.expensify.com/hubs/split-bills using Tocbot but this does not make much sense imo because we can see that there are sublinks below 'Paying Friends' and 'Workspaces' links which are not actually links to the same page and redirect to some other page and therefore are not necessarily TOC.

What alternative solutions did you explore? (Optional)
N/A (edited)
tscanlin.github.io
Tocbot
Tocbot - Generate a table of contents based on the heading structure of an html document

Note: This is the same proposal as above, just adding markdown because QA member posted the proposal and the markdown was broken.
Proposal
Please re-state the problem that we are trying to solve in this issue.
In help docs,the LHN does not close when clicking on some link that points to some section on the same page.This issue is only present on https://help.expensify.com/hubs/split-bills while other pages like https://help.expensify.com/articles/playbooks/Expensify-Chat-Playbook-for-Conferences do not have this issue.
What is the root cause of that problem?
The RC is that there is no implementation to take care of this issue on this page.The issue does not exist on other pages because the same page links in the LHN on other pages are populated using the following code.  Here we can clearly see that toggleHeaderMenu function is called whenever a link is clicked which was populated using tocbot.
What changes do you think we should make in order to solve the problem?
There are 2 solutions to fix this issue:

We implement a generic JS to take care of all such links in the help docs.That can be done as follows:

function isSamePageScrollLink(link) {
        const href = link.getAttribute("href");
        if (href.startsWith("#") && !!document.getElementById(href.slice(1))) {
            toggleHeaderMenu();
        }
    }

    const links = document.querySelectorAll("a.link");

    for (const link of links) {
        link.addEventListener('click', (event) => {
            isSamePageScrollLink(link);
        });
    }

Furthermore, this would require to remove the toggleHeaderMenu method call in the TocBot onclick event here. This way we will have a generic code that deals with all such links in the entire help docs.

The second solution would be to just implement the links on https://help.expensify.com/hubs/split-bills using Tocbot but this does not make much sense imo because we can see that there are sublinks below 'Paying Friends' and 'Workspaces' links are not actually links to the same page and redirect to some other page and therefore are not necessarily TOC.

What alternative solutions did you explore? (Optional)
N/A

Swapping with JLi (we have an agreement to swap android/iOS issues)

I can verify this is a bug, but only for the Workspaces link. I would encourage more testing though, this is what I'm seeing on a Pixel 3a.

@jliexpensify This bug exists only for Paying Friends and Workspaces links because both of these links have href attributes pointing to the same page.

Reviewing today

@abdulrahuman5196 did you get a chance to review this?

@Talha345 thanks for the context - just as an FYI, the GH's are original created by the QA team based off the reporter's findings. So if it's also an iOS problem, I'd encourage you to add that in your initial report so it can be recorded.

@jliexpensify Are we actually fine to report and to work on the help pages? Asking this because, I haven't personally seen issues raised on help pages. I could be wrong as well, but wanted to confirm

s raised on help pages. I could b

@abdulrahuman5196 The code base for the help docs is in the same repository and I have actually worked on an issue within the help docs before too.Here is the link for that issue: https://github.com/Expensify/App/issues/22014

Yep @abdulrahuman5196 I'm pretty sure we can hire Contributors to work on the Help pages. I would say find a proposal that works and we'll get an Engineer assigned, and they can have the final say!

@abdulrahuman5196 how's @Talha345 's proposal looking?

Hi @abdulrahuman5196,do you have any update as this is a pretty straightforward task in my opinion?

Bump @abdulrahuman5196 please review the proposal, thanks!

Reviewing now

On @Talha345 's proposal here https://github.com/Expensify/App/issues/23810#issuecomment-1656068129 I am not able to fully understand the proposal.

The issue does not exist on other pages because the same page links in the LHN on other pages are populated using the following code. Here we can clearly see that toggleHeaderMenu function is called whenever a link is clicked which was populated using tocbot.

What does this mean? Do we say that toggleHeaderMenu is not properly working or we are saying it should have never called or any other. I am not able to understand this clearly.

The second solution would be to just implement the links on https://help.expensify.com/hubs/split-bills using Tocbot

What do you mean by links here? Could you share references of those?

We implement a generic JS to take care of all such links in the help docs.That can be done as follows:

Where are we going to add the mentioned code? And how is that impacting?
@Talha345 Could you add more detailed information on the proposal?

Hi @abdulrahuman5196 , Proposal updated.
I think you did not understand my proposal clearly because the links to the code in my proposal had deviated because new code was added in the code base and the line numbers were not same anymore.I have updated those too.Let me know if you have any further questions.

Bumop @abdulrahuman5196 for review!

Proposal
Please re-state the problem that we are trying to solve in this issue.
LHN does not close if clicking on workspaces link.
What is the root cause of that problem?
The links don't have any event listeners to close the LHN when clicked, which is the better user experience. This issue happens when users go to different parts of the same page without actually changing the whole page.
For example, from https://help.expensify.com/hubs/split-bills to https://help.expensify.com/hubs/split-bills#workspaces Here, the page doesn't fully change, it just moves to a specific section on the page.
When the page reloads, left-hand navigation closes. But in the situation mentioned above, where there's no complete page reload, this doesn't happen.
What changes do you think we should make in order to solve the problem?

We need to invoke the toggleHeaderMenu function when the hashchange event occurs. This event is triggered when there's a change in the fragment identifier of the URL, which is the portion of the URL that starts with the # symbol. which is our current case. You can find additional information on this event here.
We will add
window.addEventListener('hashchange', toggleHeaderMenu);
// or
window.onhashchange = toggleHeaderMenu;

below here: https://github.com/Expensify/App/blob/7f13cdd9f5ade3aed50827084aa49b5e3a6496e1/docs/assets/js/main.js#L204
https://github.com/Expensify/App/assets/75031127/331be74d-67be-4bf6-9cd8-47707e8cce19
What alternative solutions did you explore? (Optional)
N/A
cc @abdulrahuman5196

Bump @abdulrahuman5196 for reviews!

@jliexpensify Can you ping @abdulrahuman5196 in Slack maybe because he has been MIA?

Reviewing now

@Talha345
Thanks for the updated proposal. Now I have some idea on the proposal made.

The second solution would be to just implement the sublinks on https://help.expensify.com/hubs/split-bills using Tocbot but this does not make much sense imo because we can see that there are sublinks below 'Paying Friends' and 'Workspaces' links which are not actually links to the same page and redirect to some other page and therefore are not necessarily TOC.

Why do you think this is not best? Any drawbacks to this?
IMO I think this is better, the reason is even in the code comments it is mentioned all the TOC links should come here on the onclick function. I think this case should extend to sublinks as well and clicking sublinks also should trigger this.
https://github.com/Expensify/App/blob/f32b695764ded61bdd771e2d2504e0dd6679ce8a/docs/assets/js/main.js#L210-L217
Do you have references on how we can I achieve this?

IMO I think this is better, the reason is even in the code comments it is mentioned all the TOC links should come here on the onclick function. I think this case should extend to sublinks as well and clicking sublinks also should trigger this.

@abdulrahuman5196 You are completely right.The code you mentioned above also gets executed when a click on a sublink is triggered.
The reason I mentioned that this does not make sense is that if you see the links in the screenshot below, only "Paying Friends" and "Workspaces" links are pointing to the same page but the sublinks "Request and Split Bills" and "The Free Plan" redirect to some other page, therefore this navigation list is not a Table of Content because TOC usually lists all the headings on a particular page https://en.wikipedia.org/wiki/Table_of_contents.

On the other hand, if you see the links in the screenshot below, all the links are headings to some section of the same page and are therefore TOC for this particular page.

If we go forward with the second solution, there is no problem technically but I think that the links are not logically TOC but we can definitely implement them as such.There would be no particular technical drawback of this approach.

@abdulrahuman5196 any comments on my proposal? in case you missed it🙂  https://github.com/Expensify/App/issues/23810#issuecomment-1680676503

Still looking at proposals - bumping @abdulrahuman5196 to address comments

Reviewing now

@Talha345

The reason I mentioned that this does not make sense is that if you see the links in the screenshot below, only "Paying Friends" and "Workspaces" links are pointing to the same page but the sublinks "Request and Split Bills" and "The Free Plan" redirect to some other page, therefore this navigation list is not a Table of Content because TOC usually lists all the headings on a particular page https://en.wikipedia.org/wiki/Table_of_contents.

This is technically true, but AFAIK there are multiple pages in the docs, whose TOC points to different pages. So this might not hold true for us logically.

Only the ARTICLES pages navigation links are generated using TocBot.

Not sure what you mean by here.

@abdulrahuman5196 any comments on my proposal? in case you missed it🙂 #23810 (comment)

@getusha I did review this proposal, but it was similar to the proposal here https://github.com/Expensify/App/issues/23810#issuecomment-1656068129. Just using different listener IMO.

@getusha I did review this proposal, but it was similar to the proposal here #23810 (comment). Just using different listener IMO.

The proposal you mentioned suggested to add click listener to every link with a loop, and i suggested to add window listener to check if the url is changed or not and it's one liner solution, which is completely different.

This is technically true, but AFAIK there are multiple pages in the docs, whose TOC points to different pages. So this might not hold true for us logically.

@abdulrahuman5196 can you provide some examples?

Not sure what you mean by here.

What I mean is that https://help.expensify.com/hubs/split-bills is a HUBS page as it belongs to the main 4 sections in the LHN which we call as HUBS.It also has hubs in the URL itself.
On the other hand, the pages where the LHN is generated using TocBot are ARTICLES pages like https://help.expensify.com/articles/playbooks/Expensify-Chat-Playbook-for-Conferences.
This can be seen here.
Also my first solution is a totally generic solution and will also act as a single source for toggling the LHN using the toggleHeaderMenu. Not sure why aren't we just going further with that.

@Talha345 @getusha
I still feel adding a listener and closing the LHN based on the url is workaround solution. (I will check with others if this is the only path)
Let me gather up what I have understood till now and let me know if I am wrong about anything.

There are pages which is using TocBot And there are pages which are not
And the issue page doesn't use TocBot and so doesn't auto close the menu.
It is not feasible to implement TocBot to pages which currently doesn't have.

So the proposals target to add listeners in some form to detect page/url changes and close the header menu.

@abdulrahuman5196 i believe the reason the LHN is closing when clicking on other links, is because of a full page reload, but in this case it is in-page link which will not cause a full page reload.

Let me gather up what I have understood till now and let me know if I am wrong about anything.

There are pages which is using TocBot And there are pages which are not
And the issue page doesn't use TocBot and so doesn't auto close the menu.
It is not feasible to implement TocBot to pages which currently doesn't have.

So the proposals target to add listeners in some form to detect page/url changes and close the header menu.

@abdulrahuman5196 Your understanding is correct. However, my proposal is to add an event listener for the click event and not to detect page/url changes.
Also, how this my proposal a workaround.It is basically implementing a functionality that is required and not present currently.When a user clicks a link in the LHN and the link points to the same page, we want to close the LHN and that's what my proposal is doing.If you look at the main.js file, we already have such listeners for other required functionality.

@getusha If you do not mind, I can provide some feedback on why your proposed solution is not very efficient and can also lead to further bugs. What you are suggesting is to add event listeners on hashchange or popstate event.If we do this and a user is on a page and goes to the URL and updates the fragment identifier manually, the LHN will open automatically if it is closed and vice versa.
Secondly, your solution will intefere with the pages implemented via TocBot and the toggleHeaderMenu will be called twice for those pages which will just close and open the LHN again.

I was trying both your solutions. For some reason both doesn't work for me. (Ran both solutions separate)

@abdulrahuman5196 Can you try the second solution? it probably is not working because of the hash changed at first and you tried again. postate should work perfectly.

Yes true. Seems I need to re-evaluate if my workaround mention is right. But anyways I will try if the solution is working then, will proceed accordingly.
Screen.Recording.2023-08-28.at.10.32.04.PM.mov

@abdulrahuman5196 my solution is working fine for me.
https://github.com/Expensify/App/assets/36226639/517e77f3-9513-4c81-8a76-31d5d9b3410a

@getusha If you do not mind, I can provide some feedback on why your proposed solution is not very efficient and can also lead to further bugs. What you are suggesting is to add event listeners on hashchange or popstate event.If we do this and a user is on a page and goes to the URL and updates the fragment identifier manually, the LHN will open automatically if it is closed and vice versa.

We can add conditions if there will be any issues related and can you show me a video of the bug? i appreciate that.

window.addEventListener('hashchange', toggleHeaderMenu);

@getusha Please find below the video of the bug I mentioned.
https://github.com/Expensify/App/assets/36226639/bb910051-6714-487c-9eb9-087502580130

@Talha345 that can be easily avoided by only closing the LHN instead of toggling it, which is the right thing to do.

Hi @abdulrahuman5196, any update?

@Talha345 @getusha
On comment here https://github.com/Expensify/App/issues/23810#issuecomment-1696042503 i did try both solutions separately that time itself and didn't work.
Now I tested again, it seems to be working in chrome web on laptop by changing the responsiveness to mobile screen. But the same is not working directly in android simulator. (I have to test on real device, need to check on how to run in real devices)
And all the videos of working is uploaded on web responsive change or safari change, none is directly on android simulator or real android chrome(Which is the original bug platform)
Kindly test and let me know if it is working or if I had missed something.

est and let me know if it is

@abdulrahuman5196  The bug is not platform specific.The bug occurs on help docs in responsive view on any website.Maybe try ngrok to test on real device?

I will check on real devices then and update back here

@abdulrahuman5196 You can test yourself using this ngrok link from my dev env https://60e1-85-8-80-53.ngrok-free.app/

@Talha345

@abdulrahuman5196 You can test yourself using this ngrok link from my dev env https://60e1-85-8-80-53.ngrok-free.app/

Sorry, I need to check myself if the solution is working or not before proceeding to next steps. I will check at my end and will update.

@Talha345

@abdulrahuman5196 You can test yourself using this ngrok link from my dev env https://60e1-85-8-80-53.ngrok-free.app/

Sorry, I need to check myself if the solution is working or not before proceeding to next steps. I will check at my end and will update.

@abdulrahuman5196 Yes I understand that.I was just trying to help you to test on real device.

Hi @abdulrahuman5196 , any update?

Bumping @abdulrahuman5196 !

@jliexpensify Can you please ping @abdulrahuman5196 in slack as he has been MIA since a week?

Pinged, thanks @Talha345 !

@Talha345 @getusha Both the solutions are not working even when trying with ngrok with real device.
It is only working in web chrome if I change the responsiveness to mobile device and test it out.

@Talha345 @getusha Both the solutions are not working even when trying with ngrok with real device. Maybe it could be related to devices. I tested with pixel 6 in real device and pixel 6 pro in simulator

@abdulrahuman5196 Firstly, the issue is only present in responsive mode.Secondly, I have tested my proposal on real Android as well as IOS devices as well as simulators and it was working flawlessly.I have already offered to provide you a ngrok link from my development environment which I would be happy to provide to you again.I have also shared the working video on a real device here.
Please let me know how can I can help you in this regard.

@Talha345 Can you provide you ngrok? Let me see if that is working for me?

@abdulrahuman5196 Sure! There you go.
https://b4e6-141-30-226-252.ngrok-free.app/#gsc.tab=0

@Talha345 @getusha Both the solutions are not working even when trying with ngrok with real device. Maybe it could be related to devices. I tested with pixel 6 in real device and pixel 6 pro in simulator

@abdulrahuman5196 i will test on real device and emulator and let you know.

Thanks for the information folks. It seems to working fine for the contributors, for some reason not working for me. I try for a little while to test it out at my end and come back with some findings or proposal approval.

Hi Folks, Sorry for the back and forth. But for some reason, still not working for me.
So I am sharing the code I am testing, let me know if I am missing something.
Note: We don't usually do code diff checks, just a POC working would be fine, but since the proposals are not working at my end, sharing the code diff.
@Talha345 proposal I am testing.
--- a/docs/assets/js/main.js
+++ b/docs/assets/js/main.js
@@ -147,6 +147,13 @@ function insertElementAfter(referenceNode, newNode) {
     referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
 }

+function isSamePageScrollLink(link) {
+    const href = link.getAttribute("href");
+    if (href.startsWith("#") && !!document.getElementById(href.slice(1))) {
+        toggleHeaderMenu();
+    }
+}
+
 // Need to wait up until page is load, so the svg viewBox can be changed
 // And the search label can be inserted
 window.addEventListener('load', () => {
@@ -210,9 +217,9 @@ window.addEventListener('DOMContentLoaded', () => {
             // onclick function to apply to all links in toc. will be called with
             // the event as the first parameter, and this can be used to stop,
             // propagation, prevent default or perform action
-            onClick() {
-                toggleHeaderMenu();
-            },
+            // onClick() {
+            //     toggleHeaderMenu();
+            // },
         });
     }

@@ -234,6 +241,12 @@ window.addEventListener('DOMContentLoaded', () => {
             e.preventDefault();
         }
     });
+    lhnContent.addEventListener('click', (event) => {
+        const clickedLink = event.target;
+        if (clickedLink) {
+            isSamePageScrollLink(clickedLink);
+        }
+    });
     window.addEventListener('scroll', (e) => {
         const scrollingElement = e.target.scrollingElement;
         const scrollPercentageInArticleContent = clamp(scrollingElement.scrollTop - articleContent.offsetTop, 0, articleContent.scrollHeight) / articleContent.scrollHeight;

@getusha  proposal I am testing took from here https://github.com/Expensify/App/issues/23810#issuecomment-1697397634
--- a/docs/assets/js/main.js
+++ b/docs/assets/js/main.js
@@ -1,10 +1,10 @@
 /* eslint-disable no-unused-vars */
-function toggleHeaderMenu() {
+function toggleHeaderMenu(close) {
     const lhn = document.getElementById('lhn');
     const lhnContent = document.getElementById('lhn-content');
     const anguleUpIcon = document.getElementById('angle-up-icon');
     const barsIcon = document.getElementById('bars-icon');
-    if (lhnContent.className === 'expanded') {
+    if (lhnContent.className === 'expanded' || close) {
         // Collapse the LHN in mobile
         lhn.className = '';
         lhnContent.className = '';
@@ -216,7 +216,8 @@ window.addEventListener('DOMContentLoaded', () => {
         });
     }

-    document.getElementById('header-button').addEventListener('click', toggleHeaderMenu);
+    window.addEventListener('popstate', () => toggleHeaderMenu(true))
+    document.getElementById('header-button').addEventListener('click', () => toggleHeaderMenu());

     // Back button doesn't exist on all the pages

@abdulrahuman5196 on which browser are you testing this on?

Note: We don't usually do code diff checks, just a POC working would be fine, but since the proposals are not working at my end, sharing the code diff.

@abdulrahuman5196 The code for my proposal seems fine on your end, however I think there might be some problem in your docs setup!

@abdulrahuman5196 on which browser are you testing this on?

@getusha
Chrome web, firefox web, pixel 6 pro simulator, pixel 6 real device.
Only working on chrome web. None of the other is working.

Chrome web, firefox web, pixel 6 pro simulator, pixel 6 real device.
Only working on chrome web. None of the other is working.

@abdulrahuman5196 What command are you using to run the jekyll server?

Note: We don't usually do code diff checks, just a POC working would be fine, but since the proposals are not working at my end, sharing the code diff.

@abdulrahuman5196 The code for my proposal seems fine on your end, however I think there might be some problem in your docs setup!

@Talha345 Not sure on how this bug fix alone is related to docs setup.
Command I used to run bundle exec jekyll serve --livereload got from here https://github.com/Expensify/App/tree/main/docs#testing-locally
Anyways i will setup an another fresh repo clone and test this out. Even if not working will reach out to other members for help to avoid dragging on this issue.

Note: We don't usually do code diff checks, just a POC working would be fine, but since the proposals are not working at my end, sharing the code diff.

@abdulrahuman5196 The code for my proposal seems fine on your end, however I think there might be some problem in your docs setup!

@Talha345 Not sure on how this bug fix alone is related to docs setup.
Command I used to run bundle exec jekyll serve --livereload got from here https://github.com/Expensify/App/tree/main/docs#testing-locally
Anyways i will setup an another fresh repo clone and test this out. Even if not working will reach out to other members for help to avoid dragging on this issue.

@abdulrahuman5196 can you simply try to run the server without the livereload flag i.e bundle exec jekyll serve

Chrome web, firefox web, pixel 6 pro simulator, pixel 6 real device.

Hmmm just tested on firefox and it seems to be working,

@abdulrahuman5196 can you simply try to run the server without the livereload flag i.e bundle exec jekyll serve

Yep tried all. Same results.

Hmmm just tested on firefox and it seems to be working,

Seems its working for all except me 😮💨 .
Will try to setup fresh clone and if still not working will reach out to other members for help.

Seems its working for all except me 😮💨 .
Will try to setup fresh clone and if still not working will reach out to other members for help.

@abdulrahuman5196 Sounds good! Will be waiting for an update! Do let me know if you need any further assistance in any way 🙂

Seems its working for all except me 😮💨 .
Will try to setup fresh clone and if still not working will reach out to other members for help.

thanks, let me know if you need me to build it and send you the link.

Seems its working for all except me 😮💨 .
Will try to setup fresh clone and if still not working will reach out to other members for help.

thanks, let me know if you need me to build it and send you the link.

Thank you @getusha . Will reach out if anything else is required.

Seems its working for all except me 😮💨 .
Will try to setup fresh clone and if still not working will reach out to other members for help.

@abdulrahuman5196 Sounds good! Will be waiting for an update! Do let me know if you need any further assistance in any way 🙂

Thank you will provide an update by tomorrow.

Hi @abdulrahuman5196 , any update ?

Not overdue, waiting on @abdulrahuman5196

Sorry folks, last week got some blocker issues. Setting up new workspace now. Will update in couple of hours.

I setup a new workspace and both the solutions are working fine in the setup.
@getusha 's solution here https://github.com/Expensify/App/issues/23810#issuecomment-1680676503 is on the same concept but with a different approach(different listener) comparing to @Talha345 's proposed solution here https://github.com/Expensify/App/issues/23810#issuecomment-1656068129. Previously pointed out the same here https://github.com/Expensify/App/issues/23810#issuecomment-1695974617
So I am going ahead with the first proposal of @Talha345 .
@Talha345 's proposal here https://github.com/Expensify/App/issues/23810#issuecomment-1656068129 looks good and works well.
🎀 👀 🎀
C+ Reviewed

I'm OK with that proposal, but I think the extra function is unnecessary and the code can be simplified to not have isSamePageScrollLink(). I'll address that in the PR.

@tgolen Job accepted on upwork for the contributor role.Since I was the reporter for this issue, I got the reporter offer too but it is for $50 but this issue was reported way before the rates were updated, so I guess it should be $250, right? This discrepancy can be fixed either right now or once we get to the payments part but just wanted to mention for the record.
PR will be up in a few hours! 🚀

Yeah, I agree with you that if it came before the rates were updated, then you get the original amount of $250. Let's handle that when this gets submitted for payment.

@tgolen @abdulrahuman5196 PR is ready for review https://github.com/Expensify/App/pull/27261

@Talha345 I always post a payments summary before paying, so you can verify the rates then!

Payment Summary (is this right? It seems like it was marged in 3 days)

Bug Reporter / Contributor: @Talha345 $250 + $1000 + $500 (speed bonus)
C+: @abdulrahuman5196: $1000 + $500 (speed bonus)

Is this correct?
I'll need to make a new Upworks job as well.

Payment Summary (is this right? It seems like it was merged in 3 days)

Bug Reporter / Contributor: @Talha345 $250 + $1000 + $500 (speed bonus)
C+: @abdulrahuman5196: $1000 + $500 (speed bonus)

Is this correct?
New Upworks job.

@jliexpensify Looks correct! Do I have to apply to the new Upwork job or will you be sending an offer automatically?

Offers have been sent!

Offers have been sent!

@jliexpensify Yes the offers were sent automatically on the old Upwork job and for this new Upwork job that you just linked, I simply got an invitation to submit a proposal but no offer.

Reminder for @abdulrahuman5196 to complete the checklist

The PR that introduced the bug has been identified. Link to the PR:
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:
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:

Not a regression. Seems to be the behaviour from beginning.

Determine if we should create a regression test for this bug.
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.

No. This is a minor case and wouldn't be beneficial to add tests.

@jliexpensify Added checklist and submitted proposal on the upwork new job

Thanks @abdulrahuman5196 have hired you, just waiting on acceptance

@jliexpensify accepted the offer

Paid out @abdulrahuman5196 - there was a very strange issue with your contract @Talha345 : can you confirm that you've not received any payment?

@Talha345 I see you ended a contract today. This is a bit confusing - can I confirm if you have been paid?

Paid out @abdulrahuman5196 - there was a very strange issue with your contract @Talha345 : can you confirm that you've not received any payment?

@jliexpensify I have not received any payment, however I received a latest offer from you which I have accepted but I had now 3 different contracts for this same issue.
I have therefore ended the 2 previous contracts without any payment.Now you can pay me with the open contract.

Thanks for clarifying - paid and job closed.


Better Test Experience

Is your feature request related to a problem? Please describe.
I'm frustrated by the current test experience Workflow provides.
Describe the solution you'd like
I want easy ways of making sure that workflows were launched, that they contain the representables expected, that it's easy to swap out what their proceed function does from tests. I think we need to look closely at developer experience, what makes the library a joy to test?
Describe alternatives you've considered
Mocking? (Workflow is final)
Some horrible thing where I @testable import Workflow and try to pick at its innards? Not ideal...
Additional context
We should also stick to our creed about not just changing production code for the sake of tests, where reasonable.

No clue how to pull it off but here's an idea of how I would like to interact with an API for testing Workflows
// Make sure a Workflow launched
let expectedWorkflow = Workflow(FR1.self).thenProceed(with: FR2.self, persistence: .removedAfterProceeding)
testViewController.doThingThatShouldTriggerAWorkflowLaunch()
XCTAssertWorkflowLaunched(expectedWorkflow)
// Assertion is smart enough to make sure that specific workflow was launched with correct persistence, does not necessarily have to be thread safe but should be able to handle 2 workflows launching and distinguishing which one to assert on, totally fine if I have to pass an index:
XCTAssertWorkflowLaunched(expectedWorkflow, launchIndex: 0) // first workflow launched should've been this one
// ADDITIONAL Params
// LaunchStyle (to assert it was launched with a particular style)
// Args (the args we expect it to launch with, to use this parameter Args must be equatable)

// Make sure proceed is called when expected
let fr1 = topViewController() as! FR1
let exp = expectation("proceedCalled")
fr1.proceedInWorkflow = { // this closure smart enough to either have no argument if Output == Never or typed output
   exp.fullfill()
}
fr1.tapSomeButtonWeExpectShouldProceed()
wait(for: [exp], timeout: 0.1)

We agree that there should be a better testing experience.  We' created a milestone to track it and will address this feature when we start work on that milestone.  Thank you for the idea on how it could look like to interact with it.

I started a branch called testing-package that did successfully clean up some cruft. However, I ran into some issues with Xcode. Essentially, while building the SwiftUIExampleTests works if you use the SwiftUIExample target, it does not work from the SwiftCurrent target. I feel like this is some SPM thing we have to deal with. The same problem happened with every hosted app, so SwiftCurrent_UIKitTests, SwiftUIExample, and UIKitExample all have problems but only when we try to run tests from the SwiftCurrent target.
I'm leaving the branch around in case it helps anybody, but am abandoning work on it for a while.


Adding Methyl Decanoate Data

3 data files from "A shock tube study of methyl decanoate autoignition at elevated pressures" from the Combustion and Flame Journal

@kyleniemeyer Can you take a look at this?

@bradcarr23 overall looks good! I left a few comments where significant digits got dropped from the data given in the paper (i.e., 16.0 turned into 16). This is likely not important, as we don't use this information now, but I'd rather try and retain that information in case it somehow becomes useful in the future.

Also, I wanted to check on whether the ignition-type was appropriate; the paper gives this on how ignition was detected:

The ignition delay time was defined as the time interval between shock arrival and reflection at the end wall, determined using the side wall pressure and incident shock velocity measurements, and the onset of ignition at the end wall, defined by extrapolating the maximum slope in OH* emission to the baseline.

You have the ignition-type set as:
    ignition-type: &ign
        target: OH*
        type: d/dt max

and I'm wondering if the type should instead be d/dt max extrapolated.

Professor Niemeyer,
Sorry it has taken so long to get back to you, I have been studying for finals, and getting settled back home for break. I will fix the significant digits on the next pull request. I also believe that the ignition-type should be "d/dt max extrapolated" due to the extrapolation of the OH* emission. I will change that now and submit a new request. Thank you!

@bradcarr23 You can make some new commits on this branch and push it up to your copy. That will automatically update the pull request (PR)

@bradcarr23 sounds good, no rush!

@kyleniemeyer @bryanwweber I have added the new files to the branch and pushed it up to my copy. Now it says that 6 files were changed, rather than just the 3 new ones. Is this correct?

@bradcarr23 It looks like you added the second set of files into the root directory, rather than into the methyl-decanoate directory. I bet if you move the new files into the subdirectory and replace the existing files, then make another commit, it will work out


Introduce TViewProps Types

Description
Adds TViewProps type and the TViewPropsWithRequiredQueryArgs helper type to ensure our views are better typed
Checklist

[x] The documentation reflects the changes.
[x] I have manually tested the application to make sure the changes don’t cause any downstream issues, which includes making sure ./orchest status --ext is not reporting failures when Orchest is running.
[ ] In case I changed code in the orchest-sdk, I updated its version according to SemVer in its _version.py and updated the version compability table in its README.md

[ ] In case I changed one of the services’ models.py I have performed the appropriate database migrations.

Sweet types!


Font Size

If you try to Set the Font size to large you will get this error.
[cuda]   cudaOverlayText( mFontMapGPU, maxGlyphSize, mFontMapWidth, ((GlyphCommand*)mCommandGPU) + mCmdIndex, numCommands, color, image, image, format, width, height)
[cuda]      invalid configuration argument (error 9) (hex 0x09)
[cuda]      /home/ai/jetson-inference/utils/cuda/cudaFont.cu:563
[cuda]   cudaOverlayText( mFontMapGPU, maxGlyphSize, mFontMapWidth, ((GlyphCommand*)mCommandGPU) + mCmdIndex, numCommands, color, image, image, format, width, height)
[cuda]      invalid configuration argument (error 9) (hex 0x09)
[cuda]      /home/ai/jetson-inference/utils/cuda/cudaFont.cu:563
I tried the tweak the values in the constructor but was wondering if there is another simple value that I need to change or something to look at.
Sorry if this is something simple still a bit new.

@KalitheBirb which Jetson are you using?   Due to the way my CUDA kernels are written for the font drawing, I think there's an upper limit on the font size based on how many CUDA threads per block the particular GPU supports.

@KalitheBirb which Jetson are you using? Due to the way my CUDA kernels are written for the font drawing, I think there's an upper limit on the font size based on how many CUDA threads per block the particular GPU supports.

Got a couple, The 4gb Jetson Nano, Jetson Xavier NX, And just got the Jetson Nano Orin. Currently testing on the Orin (Loving the new board Btw!)

Project is based on your image classification example and with the new power of the orin been testing 4k input and output. So far working well!

Ok great!  Glad you are enjoying your new Orin boards :)

From: KalitheBirb @.>
Sent: Saturday, May 6, 2023 11:08:08 AM
To: dusty-nv/jetson-utils @.>
Cc: Dustin Franklin @.>; Comment @.>
Subject: Re: [dusty-nv/jetson-utils] Font Size (Issue #158)
Project is based on your image classification example and with the new power of the orin been testing 4k input and output. So far working well!
—
Reply to this email directly, view it on GitHubhttps://github.com/dusty-nv/jetson-utils/issues/158#issuecomment-1537161337, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ADVEGK346DPKRT3HAFIDB23XEZSNRANCNFSM6AAAAAAXYFI4NM.
You are receiving this because you commented.Message ID: @.***>

Seconding this. I'm trying to overlay text on a 4K sized image and the largest font (45) is just simply too small :(


Re-enable pseudo-loc in localization builds

Describe the bug
#360 removed the conditional inclusion of resw files in the project file, but also completely removed the references to pseudo-loc ressw files as they haven't been getting supplied by the localization task.
Pseudo-loc has proven helpful in the past with early identification of localization issues, so we should be fixing the Localization task to generate those resw files, and then adding their references back to the project file.

I'm happy to see them back, especially qps-plocm, very useful to test right-to-left.

This is your friendly Microsoft Issue Bot. I've seen this issue come in and have gone to tell a human about it.


Contribute a Redis JSON + VSS example to OpenAI Cookbook (python)

The existing cookbook just touches the surface:
https://github.com/openai/openai-cookbook/blob/main/examples/vector_databases/redis/getting-started-with-redis-and-openai.ipynb
Contribute a new end-to-end notebook in Python that showcases using JSON and Search together (and using OpenAI embeddings). Highlight the following:

Proper JSON setup and indexing
Different index configurations
Common querying patterns (including multi-vector, and some basic filtering)

PR submitted.


[1394][1388] Add next cycle page, link up cycles and courses table

Context

Connect up the work done in #432 and #433

Changes proposed in this pull request

Refactor recruitment cycle into a model as suggested in code review for #432
Initialise new model in controllers and remove helper
Add breadcrumbs
Remove uses of rollover? in favour of provider.rolled_over?
Make cycle page cycle aware using RecruitmentCycle model
Add guidance to explain cycles
Fix cycle section text on org page
Add a feature spec and site prism page for recruitment cycles
Change the default redirect for cycle pages when not in rollover to point to an organisation not the courses page

 [S] Courses Table - Next cycle

 [S] View next cycle - cycle selection page for users


ERROR: Failed building wheel for retworkx' in Qiskit/qiskit'

Informations

Qiskit version: None
Python version: Python 3.9.0
pip version: pip 20.2.4
Anaconda version: conda 4.8.5
Operating system: Ubuntu 20.04.1 LTS

What is the current behavior?
During the qiskit installation process, when run pip install qiskit command and, it returns this error.
Processing ./.cache/pip/wheels/44/6a/b8/70d530095a4fd93199b06fd7c4b94b36fd2845f9ec6156e250/qiskit-0.23.0-py3-none-any.whl
Collecting qiskit-ibmq-provider==0.11.0
Using cached qiskit_ibmq_provider-0.11.0-py3-none-any.whl (194 kB)
Collecting qiskit-aqua==0.8.0
Using cached qiskit_aqua-0.8.0-py3-none-any.whl (2.1 MB)
Processing ./.cache/pip/wheels/14/05/e2/3e1b4acf4941bfe27ef9dc54e85cb2a461480f284fe3f2ff15/qiskit_terra-0.16.0-cp39-cp39-linux_x86_64.whl
Collecting qiskit-ignis==0.5.0
Using cached qiskit_ignis-0.5.0-py3-none-any.whl (203 kB)
Processing ./.cache/pip/wheels/77/c8/be/c84ddde57a938168f3e44a64c4dd314f9a9e38e37cadfde59a/qiskit_aer-0.7.0-cp39-cp39-linux_x86_64.whl
Collecting nest-asyncio!=1.1.0,>=1.0.0
Using cached nest_asyncio-1.4.2-py3-none-any.whl (5.3 kB)
Collecting requests-ntlm>=1.1.0
Using cached requests_ntlm-1.1.0-py2.py3-none-any.whl (5.7 kB)
Collecting urllib3>=1.21.1
Using cached urllib3-1.25.11-py2.py3-none-any.whl (127 kB)
Collecting requests>=2.19
Using cached requests-2.24.0-py2.py3-none-any.whl (61 kB)
Collecting numpy>=1.13
Using cached numpy-1.19.4-cp39-cp39-manylinux2010_x86_64.whl (14.5 MB)
Processing ./.cache/pip/wheels/d8/b9/a0/b97b211aeda2ebd6ac2e43fc300d308dbf1f9df520ed390cae/websockets-8.1-cp39-cp39-linux_x86_64.whl
Collecting python-dateutil>=2.8.0
Using cached python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
Processing ./.cache/pip/wheels/5e/74/24/7e235ccf01765c0daa089c98cc823e9dc1383da5fe0ed7e224/scikit_learn-0.23.2-cp39-cp39-linux_x86_64.whl
Collecting scipy>=1.4
Using cached scipy-1.5.4-cp39-cp39-manylinux1_x86_64.whl (25.8 MB)
Processing ./.cache/pip/wheels/76/43/53/a0fed7ed0582fd7b0b3032a6703bd498bc6397d4217e88a9ce/psutil-5.7.3-cp39-cp39-linux_x86_64.whl
Collecting quandl
Using cached Quandl-3.5.3-py2.py3-none-any.whl (25 kB)
Collecting h5py
Using cached h5py-3.0.0-cp39-cp39-manylinux1_x86_64.whl (4.4 MB)
Collecting retworkx>=0.5.0
Using cached retworkx-0.5.0.tar.gz (45 kB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Processing ./.cache/pip/wheels/59/50/ec/66f77a4e69f1e456dd1d88eec793730387f80b9de8056b8306/docplex-2.15.194-py3-none-any.whl
Collecting pandas
Using cached pandas-1.1.4-cp39-cp39-manylinux1_x86_64.whl (9.3 MB)
Collecting sympy>=1.3
Using cached sympy-1.6.2-py3-none-any.whl (5.8 MB)
Requirement already satisfied: setuptools>=40.1.0 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-aqua==0.8.0->qiskit) (50.3.0.post20201103)
Processing ./.cache/pip/wheels/75/6f/b1/2a6be95ab6a39ae5e82cef79a5bed8b5b841ee1322fecf3dee/yfinance-0.1.55-py2.py3-none-any.whl
Processing ./.cache/pip/wheels/1f/a1/63/bfd0fddb5bf0b59f564872e29272cee8a2de0cd745d88fede5/fastdtw-0.3.4-cp39-cp39-linux_x86_64.whl
Processing ./.cache/pip/wheels/81/bd/ba/2896ffc1856e28914fcbf4d0ded1bfbb5924dad98c80ba2d5c/dlx-1.0.4-py3-none-any.whl
Collecting dill>=0.3
Using cached dill-0.3.3-py2.py3-none-any.whl (81 kB)
Collecting ply>=3.10
Using cached ply-3.11-py2.py3-none-any.whl (49 kB)
Collecting networkx>=2.2
Using cached networkx-2.5-py3-none-any.whl (1.6 MB)
Collecting fastjsonschema>=2.10
Using cached fastjsonschema-2.14.5-py3-none-any.whl (21 kB)
Processing ./.cache/pip/wheels/51/36/1f/c2ccb8dc4eba38c5215636d4ae2c480b32069cab0376bcc1a4/python_constraint-1.4.0-py2.py3-none-any.whl
Collecting jsonschema>=2.6
Using cached jsonschema-3.2.0-py2.py3-none-any.whl (56 kB)
Collecting pybind11>=2.4
Using cached pybind11-2.6.0-py2.py3-none-any.whl (187 kB)
Collecting cython>=0.27.1
Using cached Cython-0.29.21-cp39-cp39-manylinux1_x86_64.whl (1.9 MB)
Collecting ntlm-auth>=1.0.2
Using cached ntlm_auth-1.5.0-py2.py3-none-any.whl (29 kB)
Collecting cryptography>=1.3
Using cached cryptography-3.2.1-cp35-abi3-manylinux2010_x86_64.whl (2.6 MB)
Requirement already satisfied: certifi>=2017.4.17 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from requests>=2.19->qiskit-ibmq-provider==0.11.0->qiskit) (2020.6.20)
Collecting idna<3,>=2.5
Using cached idna-2.10-py2.py3-none-any.whl (58 kB)
Collecting chardet<4,>=3.0.2
Using cached chardet-3.0.4-py2.py3-none-any.whl (133 kB)
Collecting six>=1.5
Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)
Collecting threadpoolctl>=2.0.0
Using cached threadpoolctl-2.1.0-py3-none-any.whl (12 kB)
Collecting joblib>=0.11
Using cached joblib-0.17.0-py3-none-any.whl (301 kB)
Collecting inflection>=0.3.1
Using cached inflection-0.5.1-py2.py3-none-any.whl (9.5 kB)
Collecting more-itertools
Using cached more_itertools-8.6.0-py3-none-any.whl (45 kB)
Collecting cached-property
Using cached cached_property-1.5.2-py2.py3-none-any.whl (7.6 kB)
Collecting pytz>=2017.2
Using cached pytz-2020.4-py2.py3-none-any.whl (509 kB)
Processing ./.cache/pip/wheels/95/ce/4d/8d9590361a444e9d675579e0ead7a43932654456fef0d5258a/mpmath-1.1.0-py3-none-any.whl
Collecting lxml>=4.5.1
Using cached lxml-4.6.1-cp39-cp39-manylinux1_x86_64.whl (5.4 MB)
Processing ./.cache/pip/wheels/1d/13/0b/0c32509050dcd9264e9a90b1d9d2dc9c6db9538db151ea7d26/multitasking-0.0.9-py3-none-any.whl
Collecting decorator>=4.3.0
Using cached decorator-4.4.2-py2.py3-none-any.whl (9.2 kB)
Collecting attrs>=17.4.0
Using cached attrs-20.3.0-py2.py3-none-any.whl (49 kB)
Processing ./.cache/pip/wheels/00/cc/12/e712d3979a4aeee423b34a832d97c803e1a67659060315a7e0/pyrsistent-0.17.3-cp39-cp39-linux_x86_64.whl
Collecting cffi!=1.11.3,>=1.8
Using cached cffi-1.14.3-cp39-cp39-manylinux1_x86_64.whl (405 kB)
Collecting pycparser
Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)
Building wheels for collected packages: retworkx
Building wheel for retworkx (PEP 517) ... error
ERROR: Command errored out with exit status 1:
command: /home/kusal/anaconda3/envs/conda/bin/python /home/kusal/anaconda3/envs/conda/lib/python3.9/site-packages/pip/_vendor/pep517/_in_process.py build_wheel /tmp/tmpna05q14i
cwd: /tmp/pip-install-wt2iojos/retworkx
Complete output (18 lines):
running bdist_wheel
running build
running build_py
creating build
creating build/lib
creating build/lib/retworkx
copying retworkx/init.py -> build/lib/retworkx
running egg_info
writing retworkx.egg-info/PKG-INFO
writing dependency_links to retworkx.egg-info/dependency_links.txt
writing requirements to retworkx.egg-info/requires.txt
writing top-level names to retworkx.egg-info/top_level.txt
reading manifest file 'retworkx.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'retworkx.egg-info/SOURCES.txt'
running build_ext
running build_rust
error: Can not find Rust compiler
ERROR: Failed building wheel for retworkx
Failed to build retworkx
ERROR: Could not build wheels for retworkx which use PEP 517 and cannot be installed directly
Steps to reproduce the problem

download and install anaconda
conda create -n name_of_my_env python=3
conda activate name_of_my_env
pip install qiskit

What is the expected behavior?
Complete the installation without any errors
Requirement already satisfied: qiskit in ./anaconda3/envs/conda/lib/python3.9/site-packages (0.23.0)
Requirement already satisfied: qiskit-ignis==0.5.0 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit) (0.5.0)
Requirement already satisfied: qiskit-aer==0.7.0 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit) (0.7.0)
Requirement already satisfied: qiskit-ibmq-provider==0.11.0 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit) (0.11.0)
Requirement already satisfied: qiskit-terra==0.16.0 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit) (0.16.0)
Requirement already satisfied: qiskit-aqua==0.8.0 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit) (0.8.0)
Requirement already satisfied: scikit-learn>=0.17 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-ignis==0.5.0->qiskit) (0.23.2)
Requirement already satisfied: scipy!=0.19.1,>=0.19 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-ignis==0.5.0->qiskit) (1.5.4)
Requirement already satisfied: setuptools>=40.1.0 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-ignis==0.5.0->qiskit) (50.3.0.post20201103)
Requirement already satisfied: numpy>=1.13 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-ignis==0.5.0->qiskit) (1.19.4)
Requirement already satisfied: cython>=0.27.1 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-aer==0.7.0->qiskit) (0.29.21)
Requirement already satisfied: pybind11>=2.4 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-aer==0.7.0->qiskit) (2.6.0)
Requirement already satisfied: requests>=2.19 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-ibmq-provider==0.11.0->qiskit) (2.24.0)
Requirement already satisfied: websockets>=8 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-ibmq-provider==0.11.0->qiskit) (8.1)
Requirement already satisfied: python-dateutil>=2.8.0 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-ibmq-provider==0.11.0->qiskit) (2.8.1)
Requirement already satisfied: urllib3>=1.21.1 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-ibmq-provider==0.11.0->qiskit) (1.25.11)
Requirement already satisfied: nest-asyncio!=1.1.0,>=1.0.0 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-ibmq-provider==0.11.0->qiskit) (1.4.2)
Requirement already satisfied: requests-ntlm>=1.1.0 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-ibmq-provider==0.11.0->qiskit) (1.1.0)
Requirement already satisfied: networkx>=2.2 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-terra==0.16.0->qiskit) (2.5)
Requirement already satisfied: sympy>=1.3 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-terra==0.16.0->qiskit) (1.6.2)
Requirement already satisfied: psutil>=5 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-terra==0.16.0->qiskit) (5.7.3)
Requirement already satisfied: ply>=3.10 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-terra==0.16.0->qiskit) (3.11)
Requirement already satisfied: fastjsonschema>=2.10 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-terra==0.16.0->qiskit) (2.14.5)
Requirement already satisfied: dill>=0.3 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-terra==0.16.0->qiskit) (0.3.3)
Requirement already satisfied: jsonschema>=2.6 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-terra==0.16.0->qiskit) (3.2.0)
Requirement already satisfied: python-constraint>=1.4 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-terra==0.16.0->qiskit) (1.4.0)
Requirement already satisfied: retworkx>=0.5.0 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-terra==0.16.0->qiskit) (0.5.0)
Requirement already satisfied: dlx in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-aqua==0.8.0->qiskit) (1.0.4)
Requirement already satisfied: pandas in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-aqua==0.8.0->qiskit) (1.1.4)
Requirement already satisfied: docplex in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-aqua==0.8.0->qiskit) (2.15.194)
Requirement already satisfied: h5py in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-aqua==0.8.0->qiskit) (3.0.0)
Requirement already satisfied: quandl in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-aqua==0.8.0->qiskit) (3.5.3)
Requirement already satisfied: fastdtw in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-aqua==0.8.0->qiskit) (0.3.4)
Requirement already satisfied: yfinance in ./anaconda3/envs/conda/lib/python3.9/site-packages (from qiskit-aqua==0.8.0->qiskit) (0.1.55)
Requirement already satisfied: threadpoolctl>=2.0.0 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from scikit-learn>=0.17->qiskit-ignis==0.5.0->qiskit) (2.1.0)
Requirement already satisfied: joblib>=0.11 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from scikit-learn>=0.17->qiskit-ignis==0.5.0->qiskit) (0.17.0)
Requirement already satisfied: chardet<4,>=3.0.2 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from requests>=2.19->qiskit-ibmq-provider==0.11.0->qiskit) (3.0.4)
Requirement already satisfied: certifi>=2017.4.17 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from requests>=2.19->qiskit-ibmq-provider==0.11.0->qiskit) (2020.6.20)
Requirement already satisfied: idna<3,>=2.5 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from requests>=2.19->qiskit-ibmq-provider==0.11.0->qiskit) (2.10)
Requirement already satisfied: six>=1.5 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from python-dateutil>=2.8.0->qiskit-ibmq-provider==0.11.0->qiskit) (1.15.0)
Requirement already satisfied: ntlm-auth>=1.0.2 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from requests-ntlm>=1.1.0->qiskit-ibmq-provider==0.11.0->qiskit) (1.5.0)
Requirement already satisfied: cryptography>=1.3 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from requests-ntlm>=1.1.0->qiskit-ibmq-provider==0.11.0->qiskit) (3.2.1)
Requirement already satisfied: decorator>=4.3.0 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from networkx>=2.2->qiskit-terra==0.16.0->qiskit) (4.4.2)
Requirement already satisfied: mpmath>=0.19 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from sympy>=1.3->qiskit-terra==0.16.0->qiskit) (1.1.0)
Requirement already satisfied: pyrsistent>=0.14.0 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from jsonschema>=2.6->qiskit-terra==0.16.0->qiskit) (0.17.3)
Requirement already satisfied: attrs>=17.4.0 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from jsonschema>=2.6->qiskit-terra==0.16.0->qiskit) (20.3.0)
Requirement already satisfied: pytz>=2017.2 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from pandas->qiskit-aqua==0.8.0->qiskit) (2020.4)
Requirement already satisfied: cached-property in ./anaconda3/envs/conda/lib/python3.9/site-packages (from h5py->qiskit-aqua==0.8.0->qiskit) (1.5.2)
Requirement already satisfied: more-itertools in ./anaconda3/envs/conda/lib/python3.9/site-packages (from quandl->qiskit-aqua==0.8.0->qiskit) (8.6.0)
Requirement already satisfied: inflection>=0.3.1 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from quandl->qiskit-aqua==0.8.0->qiskit) (0.5.1)
Requirement already satisfied: lxml>=4.5.1 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from yfinance->qiskit-aqua==0.8.0->qiskit) (4.6.1)
Requirement already satisfied: multitasking>=0.0.7 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from yfinance->qiskit-aqua==0.8.0->qiskit) (0.0.9)
Requirement already satisfied: cffi!=1.11.3,>=1.8 in ./anaconda3/envs/conda/lib/python3.9/site-packages (from cryptography>=1.3->requests-ntlm>=1.1.0->qiskit-ibmq-provider==0.11.0->qiskit) (1.14.3)
Requirement already satisfied: pycparser in ./anaconda3/envs/conda/lib/python3.9/site-packages (from cffi!=1.11.3,>=1.8->cryptography>=1.3->requests-ntlm>=1.1.0->qiskit-ibmq-provider==0.11.0->qiskit) (2.20)
Suggested solutions
We have to installe Rust toolchain installer, then we can easily install retworkx into our python environment using pip command. In this case, we do not need to install it separately. Execute pip install qiskit command after curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh command (rust installation).

download and install anaconda
conda create -n name_of_my_env python=3
conda activate name_of_my_env
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
pip install qiskit

The issue here is that qiskit does not support python 3.9 yet. It was only released about a month ago and many of the upstream dependencies do not fully support python 3.9 yet (or haven't published python 3.9 wheels yet). This is just a matter of time as we wait for those packages to release and then push a qiskit version that supports 3.9. The process for this has started here: https://github.com/Qiskit/qiskit-terra/pull/5189 Until Python 3.9 is supported in qiskit I'd recommend you downgrade to python 3.8 where everything is supported already.
If you can't wait you'll have to build many of the dependencies from source (which if things are setup properly in your environment pip should be able to handle for you). In this specific case the retworkx library has merged support for python 3.9 (in https://github.com/Qiskit/retworkx/pull/168 ) and in its next release it will publish precompiled wheel for python 3.9.


cli: Allow custom websocket url for Cluster

A small proposal for allowing both a custom HTTP JSON-RPC URL and a Websocket URL to be specified in Anchor.toml.
An example of how it may be specified:
[provider]
cluster = { custom = ["https://api.devnet.solana.com", "ws://api.devnet.solana.com"] }
wallet = "~/.config/solana/id.json"

A small proposal for allowing both a custom HTTP JSON-RPC URL and a Websocket URL to be specified in Anchor.toml.
An example of how it may be specified:
[provider]
cluster = { custom = ["https://api.devnet.solana.com", "ws://api.devnet.solana.com"] }
wallet = "~/.config/solana/id.json"

I like the idea. What if we did
[provider]
cluster = { http = "https://api.devnet.solana.com", ws = "ws://api.devnet.solana.com" }
wallet = "~/.config/solana/id.json"

That looks great too :+1:.

Hey @armaniferrante would you be interested in a PR to implement this? I'm finding myself needing it more and more 🙂


fix: loader handling of getServerProps

Fixes loader chain order of operation. Instead of a pitching loader, i now use a regular loader with layers so that next can still detect data methods
fixes: #670

Looking forward for this fix :) 👍🏻

@simonbergstrom please give it a test if you can, should be fixed in this PR


Running multiple evaluation processes causes database locked error

Error: sqlite3.OperationalError: database is locked

Hi! If you are not in need of caching your model's generations, then you can run with the --no_cache argument to avoid this error.
If you do want to cache, the big-refactor branch and upcoming release require passing a cache location, which allows each evaluation process to use a different database. (this separation isn't ideal, but avoids the database locked error).


[Feature] Add docker image

Hey @bastien70 & @jmsche 👋
I like the idea and setup of this bundle, so I would like to know if you are open to having a docker image for it?
Even though I'm kind of new to making images myself, I've already started working on it, so if you are interested I'd love to create a PR and hear your feedback.

Hi ! Yes of course it's a good idea :)
If you are familiar with the French language (or not), a youtuber made a video in which he dockerized a symfony application. I don't know if it meets your needs : https://www.youtube.com/watch?v=KFWnB5hW6j8

Hey @bastien70
Thanks for the additional information. Je comprends un peu le français, so I was able to follow through. I was almost done with my Dockerfile, which is fairly similar to the one that youtuber made. But I noticed he's missing out on some best practices for creating docker images, so instead I'm taking dunglas/symfony-docker as a better guideline.

Yes it is possible that his way of doing things is not the best, very often in his videos he discovers at the same time and learns to do it live. If you succeeded, great. PR’s welcome :)


laravel 5.3 php artisan queue:work console command can't work in redis cluster 3.0 && solve it

Laravel Version: 5.3.*
PHP Version: 5.6
Database Driver & Version: Redis Cluster 3.0

Description:
php artisan queue:work  console command can't work in redis cluster 3.0
Steps To Reproduce:

config config/database.php, make it support redis-cluster

    'redis' => [

        'cluster' => true,

        'default' => [
            'host' => env('REDIS_HOST', 'localhost'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => 0,
        ],

        'redis1' => [
            'host' => env('REDIS_HOST_1', 'localhost'),
            'password' => env('REDIS_PASSWORD_1', null),
            'port' => env('REDIS_PORT_1', 6379),
            'database' => 0,
        ],

        'options' => [
            'cluster' => 'redis'
        ]
    ],

make a app jobs, like

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;

class SendReminderEmail implements ShouldQueue
{
    use InteractsWithQueue, Queueable, SerializesModels;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        file_put_contents('/tmp/job.txt', "test\n", 8);
    }
}

dispatch job in controller and run

class HomeController extends Controller
{

    public function index(Request $request)
    {
        dispatch(new SendReminderEmail());
        echo "dispatch";
//        return view('welcome');
    }
}

run php artisan queue:work, it didn't work.

Reason：
in redis cluster, the KEYS call must be in same hash slot.
see:
[keys-hash-tags] https://redis.io/topics/cluster-spec#keys-hash-tags

How to resolve ?
we only need to do is , change Illuminate\Queue\RedisQueue
add '{}' to queue key, make the redis keys hash tags same in redis-cluster
also, you can write new class, binding Illuminate\Queue\RedisQueue, and rewrite the getQueue function
    // line 224
    protected function getQueue($queue)
    {
        return '{queues}:'.($queue ?: $this->default);
    }

Sorry, I was not aware of this Redis limitation.
Is this bug new to Laravel 5.3? I think transactions with access to multiple keys was used in Laravel < 5.2. According to https://redis.io/topics/cluster-tutorial, maybe this bug exists for all the Laravel versions?

Redis Cluster supports multiple key operations as long as all the keys involved into a single command execution (or whole transaction, or Lua script execution) all belong to the same hash slot. The user can force multiple keys to be part of the same hash slot by using a concept called hash tags.

Will this be a more appropriate change?
    protected function getQueue($queue)
    {
        return '{queues:'.($queue ?: $this->default).'}';
    }

@halaei only add {} to queues words, like
return '{queues}:'.($queue ?: $this->default);

so that will make {queues}:delayed  {queues}:reserved  in the same slots.
i had write a module to fix it. see:
https://github.com/cutv/queue
composer require cutv/queue=dev-master

@halaei Yes, this bug exists for all the Laravel versions, but only when you use redis-cluster queue.
if you didn't use redis-cluster, the queue will work fine.

This (return '{queues}:'.($queue ?: $this->default);) imposes a more than necessary restriction. The complete key names are like this:
queue:default  queue:default:delayed  queue:default:reserved

And if I got it right, they should be converted into:
{queue:default}  {queue:default}:delayed  {queue:default}:reserved

Than aside, I have questions. If all the keys related to the same queue should be on the same hash slot, then what is the point of using Redis clusters for laravel queues?
If it is just for having redundancy, isn't the current code compatible with a cluster with only one master node and the rest of nodes being slaves?

Yes, {queue:default}  {queue:default}:delayed  {queue:default}:reserved is better.

sometime we also use another queue name, like  {queue:email},
so it will point to another slot , it's differnt form {queue:defalut).

Another easy fix? Will it be a fix if you set the name of you queues to {default} or {email} instead of default or email. There will be no need to change the code if you do that?

Yes, it compatible with.  You can run more than one redis port, like 7000, 7001 in you mathine,
and remove the options config
        'options' => [
            'cluster' => 'redis'
        ]

        'redis' => [
            'driver'      => 'redis',
            'connection'  => 'default',
            'queue'       => '{default}',
            'retry_after' => 90,
        ],

i just update it, thanks for your help.

wow, cool!  and now the queue name is queue:{default} queue:{default}:delayed, it work fine

Great. Maybe we need to document this restriction somewhere @taylorotwell :
If you use Redis queue driver over connections to a Redis cluster with more than one master nodes, the names of the queues should follow this pattern: {queue-name}

there has another question, if we didn't change the code, we need add {} by hands
dispatch((new SendReminderEmail)->onQueue('{emails}'));

and run
php artisan queue:work --queue={emails}

but if we change the code, we only need the name
dispatch((new SendReminderEmail)->onQueue('emails'));
php artisan queue:work --queue=emails

@hongjh yes you are right. But unfortunately, this change will be breaking. It may be OK to submit a PR for 5.4.

OK. expect 5.4


[OpenCL] Cleans Shape Op

First in series of small PR's that clean OpenCL related code.

Can one of the admins verify this patch?

Can we undo the move, to make review easier?
If we are only moving code, we can close this PR.

There are some changes beside re-ordering 609e8c7

Jenkins, test this please.

Jenkins, test this please.

Jenkins, test this please.

Makefile failure unrelated. merging.


Roll Engine from b0f3c0f7e478 to ec009a3d1b78 (15 revisions)

https://github.com/flutter/engine/compare/b0f3c0f7e478...ec009a3d1b78
2021-09-22<EMAIL_ADDRESS>Roll Dart SDK from 715a98df1828 to 4e396689de4f (1 revision) (flutter/engine#28797)
2021-09-22<EMAIL_ADDRESS>Roll Skia from<PHONE_NUMBER>f5 to cb25d566c21d (3 revisions) (flutter/engine#28796)
2021-09-22<EMAIL_ADDRESS>Roll Dart SDK from c2429dee845e to 715a98df1828 (1 revision) (flutter/engine#28795)
2021-09-22<EMAIL_ADDRESS>Roll Skia from bb30fc16e1be to<PHONE_NUMBER>f5 (1 revision) (flutter/engine#28794)
2021-09-22<EMAIL_ADDRESS>Roll Fuchsia Linux SDK from JD40LpEJO... to bWZcp2jnx... (flutter/engine#28793)
2021-09-22<EMAIL_ADDRESS>Roll Fuchsia Mac SDK from 3k3-vCrm5... to NM9FaaYay... (flutter/engine#28792)
2021-09-22<EMAIL_ADDRESS>Roll Skia from a48e7b0186b3 to bb30fc16e1be (1 revision) (flutter/engine#28791)
2021-09-22<EMAIL_ADDRESS>Roll Dart SDK from 86a21d182523 to c2429dee845e (1 revision) (flutter/engine#28789)
2021-09-22<EMAIL_ADDRESS>Set MinimumOSVersion to iOS 9 in Info.plist (flutter/engine#28783)
2021-09-22<EMAIL_ADDRESS>Eliminate unnecessary canvaskit imports (flutter/engine#28787)
2021-09-21<EMAIL_ADDRESS>Roll Skia from e32309d771ee to a48e7b0186b3 (10 revisions) (flutter/engine#28782)
2021-09-21<EMAIL_ADDRESS>[web] clear surfaces on hot restart (flutter/engine#28675)
2021-09-21<EMAIL_ADDRESS>Roll Dart SDK from a0243abd09e3 to 86a21d182523 (6 revisions) (flutter/engine#28779)
2021-09-21<EMAIL_ADDRESS>Replace jcenter() for mavenCentral() (flutter/engine#28777)
2021-09-21<EMAIL_ADDRESS>Implement a default font manager for Fuchsia. (flutter/engine#28673)
Also rolling transitive DEPS:
fuchsia/sdk/core/linux-amd64 from JD40LpEJOINC to bWZcp2jnxHum
fuchsia/sdk/core/mac-amd64 from 3k3-vCrm5vcT to NM9FaaYaygGx
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Incompatibility with Wildfire's Gender Mod - 1.20.4 - Armor stays at full opacity around the breasts

Issue: When using both mods and turning opacity down for the chestplate (any vanilla chestplate) it is correctly turned down for the armor piece's texture except for that which surrounds the breasts added by Wildfire's Gender Mod, which stay at full opacity.
Mods involved:
-Wildfire's Gender Mod: Version 3.2.1 / Fabric
-Show Me Your Skin! (Hide armor): 1.8.0 / Fabric
Pictures:

This is a known issue thats currently being tracked in #63. I had a compatibility patch before, which broke due to changes in WFGM, and I haven't been able to find a way to work around the new changes yet.


qobj methods depending on isherm attribute give TracerBoolConversionError

The following code:
@jax.jit
def sin(t, p):
    return p[0] * jnp.sin(p[1] * t + p[2])

with qt.CoreOptions(default_dtype="jax"):
    H = qt.QobjEvo([qt.sigmax(), sin], args={"p": [1., 1., 0.]})
    solver = qt.MESolver(H, options={'method': 'diffrax', "normalize_output": False})

@jax.jit
def f(T, p):
    evo = solver.run(qt.qeye(2, dtype="jax"),
                     tlist=[0, T],
                     args={'p': p})
    diff =  evo.final_state - qt.destroy(2, dtype="jax")
    return diff.tr()

print(f(1., [1., 1., 0.]))

will trigger TracerBoolConversionError due to the if/else clause in qutip.core.qobj.tr() (same goes for qutip.core.qobj.dag()).
See qutip.core.qobj:
    def tr(self):
        """Trace of a quantum object.

        Returns
        -------
        trace : float
            Returns the trace of the quantum object.

        """
        out = _data.trace(self._data)
        # This ensures that trace can return something that is not a number such
        # as a `tensorflow.Tensor` in qutip-tensorflow.
        return out.real if (self.isherm
                        and hasattr(out, "real")
                        ) else out

I understand that the subtraction operation diff =  evo.final_state - qt.destroy(2, dtype="jax") might result in a non-Hermitian operator, so the value is not defined before runtime -> raising the error.
However, to me it seems that the if-else clause is not strictly necessary (I guess the reason for it, is performance of the tr() and dag() method).
Is there a way to prevent this within the jax-package or does that require changes in qutip.core.qobj?

If you know that diff is not hermitian, you should be able to set diff._isherm = False so the isherm is defined at compilation.
The reason of the if else is for users experience. Traces of dm are expected to be real.

Thank you Eric, I guess it does not hurt to set diff._isherm = False for my problem (even if in some cases it might be Hermitian).
The issue raised the question, if it would be more sensible to put the if else clause into the datalayer implementation of tr (and e.g. dag).


Chore/e2e tests

Adds e2e tests for navigation, loading and error states for multiple micro-frontends hosted in a nextJS host.

Good job @AlexTraher !


Update supported version in README

Motivation:
NIO can run on macOS 10.10+, but the README states 10.12+.
Modifications:
Update readme.
Result:
More accurate docs.

@swift-nio-bot test this please

@glbrntt we could even add macOS 10.9 and iOS 7 :)

@weissi ah neat, will add. We should make our pods consistent with that as well: https://github.com/apple/swift-nio/blob/c1d86289ed7b2f44f71071da2e1a776a19ed956e/scripts/build_podspecs.sh#L104-L106


Unable to override some variables

I have a problem where following the example here to set variables it doesn't work I cannot set any variable other than the description.
This is the code block I'm using:
---
description: A management console made with Electron.JS for my Computer Science A-Level
show_downloads: true
github:
  is_project_page: true
  repository_url: https://github.com/futurelucas4502/management-console
  repository_name: management-console
  zip_url: https://github.com/futurelucas4502/management-console/zipball/master
  tar_url: https://github.com/futurelucas4502/management-console/tarball/master
---

This is the website being used.
This is a link to the markdown file.


Improve documentation

I have seen many people using cors-anyhwere, without understanding what CORS is and why it is used. This does only apply if you have control of the origin server, but many people do this even if they have. I recently got asked by somebody why the request to https://cors-anywhere.herokuapp.com/http://localhost:3000/users is not working...
In my opinion, that is a huge problem, because they try to circumvent a security mechanism by creating a workaround instead of solving the actual problem.
I simply would suggest to add a hint which can't be missed at the very top of the readme.

What kind of hint do you want to suggest? The top of the README says that this is a proxy, and that means that it can "obviously" not proxy websites that it cannot reach, such as localhost.

Regarding the message, I thought about something like "NOTE: if you have control of your own server, we recommend implementing CORS instead of using this proxy" or if you trust people get what a proxy does (which is expected) you could maybe suggest that they probably should not allow request to any domain and instead use the originWhitelist option.
Regarding the fact that this is a proxy, well, true, it clearly shows that it is a proxy and you expect people to know what a proxy is when they use one.. it was just an idea.

hello @steebchen
i see we have similar taste in avatars.


HADOOP-11616. Remove workaround for Curator's ChildReaper requiring Guava 15+

Requesting your review @aajisaka @tasanuma
Thanks

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Logfile
Comment

+0 :ok:
reexec
1m 10s

Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s

No case conflicting files found.

+0 :ok:
codespell
0m  1s

codespell was not available.

+1 :green_heart:
@author
0m  0s

The patch does not contain any @author tags.

+1 :green_heart:
test4tests
0m  0s

The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

+1 :green_heart:
mvninstall
35m 32s

trunk passed

+1 :green_heart:
compile
20m 52s

trunk passed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04

+1 :green_heart:
compile
18m  4s

trunk passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08

+1 :green_heart:
checkstyle
1m  5s

trunk passed

+1 :green_heart:
mvnsite
1m 31s

trunk passed

+1 :green_heart:
javadoc
1m  5s

trunk passed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04

+1 :green_heart:
javadoc
1m 37s

trunk passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08

+1 :green_heart:
spotbugs
2m 23s

trunk passed

+1 :green_heart:
shadedclient
15m 54s

branch has no errors when building and testing our client artifacts.

_ Patch Compile Tests _

+1 :green_heart:
mvninstall
0m 54s

the patch passed

+1 :green_heart:
compile
22m 34s

the patch passed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04

+1 :green_heart:
javac
22m 34s

root-jdkUbuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04 with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04 generated 0 new + 1965 unchanged - 13 fixed = 1965 total (was 1978)

+1 :green_heart:
compile
20m 20s

the patch passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08

+1 :green_heart:
javac
20m 20s

root-jdkPrivateBuild-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08 with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08 generated 0 new + 1867 unchanged - 13 fixed = 1867 total (was 1880)

+1 :green_heart:
blanks
0m  0s

The patch has no blanks issues.

+1 :green_heart:
checkstyle
1m  0s

hadoop-common-project/hadoop-common: The patch generated 0 new + 0 unchanged - 96 fixed = 0 total (was 96)

+1 :green_heart:
mvnsite
1m 32s

the patch passed

+1 :green_heart:
javadoc
1m  6s

the patch passed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04

+1 :green_heart:
javadoc
1m 36s

the patch passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08

+1 :green_heart:
spotbugs
2m 32s

the patch passed

+1 :green_heart:
shadedclient
15m 55s

patch has no errors when building and testing our client artifacts.

_ Other Tests _

+1 :green_heart:
unit
17m  3s

hadoop-common in the patch passed.

+1 :green_heart:
asflicense
0m 55s

The patch does not generate ASF License warnings.

184m 57s

Subsystem
Report/Notes

Docker
ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2973/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/2973

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell

uname
Linux 54ab98da0ba6 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/bin/hadoop.sh

git revision
trunk / 8eca9916067d6de0637d22acb31f341e2941c70b

Default Java
Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08

Multi-JDK versions
/usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08

Test Results
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2973/1/testReport/

Max. process+thread count
1775 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common U: hadoop-common-project/hadoop-common

Console output
https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2973/1/console

versions
git=2.25.1 maven=3.6.3 spotbugs=4.2.2

Powered by
Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

Merged. Thank you @virajjasani and @jojochuang

Hi @aajisaka, I saw this change went in after upgrading guava. We are removing these two classes as well and have an old guava but we try to avoid upgrading it in fear of breaking. Do you know is it mandatory?


Having clause support

Hi! Any chance to get having clause supported? As it is so important in OLAP.

@flowbehappy, we'll eventually have it, but I don't have an estimate as to when.

we will update the docs once we have 'having' support

Hi, Does Pinot support the Having? We need the feature!

Having is not yet supported. Hopefully we can get to this asap
On Mon, Jul 11, 2016 at 10:25 PM, taotaojs<EMAIL_ADDRESS>wrote:

Hi, Does Pinot support the Having? We need the feature!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/linkedin/pinot/issues/53#issuecomment-231940645, or mute
the thread
https://github.com/notifications/unsubscribe/AAz7Z74OODa1tLCVxxZHNZld7HdsoGQHks5qUyVlgaJpZM4GGmN2
.


Change HMCDA default adaptation

Change default adaptor for HMCDA to a naive composite instead of Stan's .
This will fail the CI before https://github.com/TuringLang/AdvancedHMC.jl/pull/67 is merged in AHMC (and used by Turing).

@kai This should be working after https://github.com/TuringLang/AdvancedHMC.jl/pull/72 is merged.

I just updated AHMC in Manifest.toml. Let's see if CI passes this time.


 Im curious if a benchmark was ever done around the value of Retain/Release in the Go library vs not having it at all and getting the garbage collection taking care of that. Maybe we should have a mode where Retain/Release is not necessary? Or there is other reason Im not aware of?
cc @zeroshade
Component(s)
Go

To my knowledge I don't believe a benchmark has actually been done around it as those predate the original donation of the code from InfluxDB to the repository.
 We just need to make sure that we're calling Retain/Release internally here in the library so that if a consumer is using a non-Go-GC allocator we can be sure that they won't end up with memory leaks.
The primary reasons for their existence currently are:

Allowing the user to control when buffers and internals are set to nil to be marked for garbage collection early if possible
Allowing for proper usage of allocators that don't rely on the Go garbage collector (such as the mallocator impl which uses malloc/free to manage C memory instead of Go garbage collection) if a user desires.
While a finalizer could be utilized via SetFinalizer the general advice is that it's better to have an explicit release rather than relying on a finalizer since there's no actual guarantee that finalizers will ever run. In addition, finalizers only run during GC, which means that if your allocator is allocating C memory or something and the Go memory stays low it's possible that you'll end up with a ton of C memory allocated blowing out your memory before any finalizers run to actually call free on things.

Got it. Ok that makes tons of sense. Thanks for the explanation. Going to close it now.


Fixes crash during Activity onPause()

There is no need for us to manually call onPause/onResume in AirMapView.
please review @lelandrichardson @spikebrehm @gilbox
Fixes #414

LGTM
This is causing crashes?

@spikebrehm yeah it's described in #414


Update gradle.properties

the Android Gradle plugin supports only kotlin-android-extensions Gradle plugin version 1.6.20 and higher.
The following dependencies do not satisfy the required version:
project ':react-native-webview' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.0
when we use react-native-webview along with react-native-camera-kit, it's fails the build.

FAILURE: Build failed with an exception.

What went wrong:
The Android Gradle plugin supports only kotlin-android-extensions Gradle plugin version 1.6.20 and higher.
The following dependencies do not satisfy the required version:
project ':react-native-webview' -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.0

fixed the issue.

Same issue for me
Any update?

Same issue for me Any update?

you can use my git link as of now to work https://github.com/balajivasi/react-native-webview/tree/master

Same issue for me Any update?

you can use my git link as of now to work https://github.com/balajivasi/react-native-webview/tree/master

What did you do? This just takes us to the main repo of web view.

use npm install github:balajivasi/react-native-webview --save


fixing coin symbol and name

Please note: This repository is being rebuilt to accept the new volume of token additions and modifications. PR merges will be delayed.

I agree to not ping anybody on Discord/Twitter/email about this pull request. Instead I will inquire by posting a new comment in the pull request if needed.

PRs are reviewed in bulk and and can take up to two weeks to be merged.
This repository is managed using an auto merge action. Please ensure your PR has no deleted lines, and it will be merged.
Please provide the following information for your token.
Please include change to the src/tokens/solana.tokenlist.json file in the PR.
DON'T modify any other token on the list.
At minimum each entry should have

Token Address:
Token Name:
Token Symbol:
Logo: (logo should be uploaded under assets/mainnet//*.<png/svg>)
Link to the official homepage of token:
Coingecko ID if available (https://www.coingecko.com/api/documentations/v3#/coins/get_coins__id_):

Auto merge requirements
Your pull request will be automatically merged if the following conditions are met:

Your pull request only adds new tokens to the list. Any modification to existing
tokens will require manual review to prevent unwanted modifications.

Your pull request does not touch unrelated code. In particular, reformatting changes to unrelated
code will cause the auto merge to reject your PR.

Any asset files added correspond to the token address you are adding. Asset files
must be PNG, JPG or SVG files.

Your change is valid JSON and conforms to the schema. If your change failed validation,
read the error message carefully and update your PR accordingly.

No other tokens shares the same name, symbol or address.

For example, this change would be rejected due to unrelated changes:

The bot runs every 60 minutes and bulk-merges all open pull requests to prevent conflicts.
This means that you need to wait up to 60 minutes for your pull request to be merged or reprocessed.

https://github.com/solana-labs/token-list/pull/18275 This one I have updated 2 days ago But we have one mistake that Symbol and coin name fixing this time. @kobak  @aquabu  Can you please verify and approve the merge request, please?  Thank you.


Kestrel connection limits on Windows?

I'd like to test drive a .NET 4.6 application on Kestrel (so Linux doesn't work afaik) including some load testing.
I was able to grab a potent enough machine but no server OS and am now worried if Kestrel suffers from the same "10 concurrent requests" disease IIS has on client Windows?
If necessary I could install a Server 2012 trial just for the test, but it would be good to know in general.

It shouldn't, Kestrel is built using a totally different stack using libuv, the same library that powers connections in Node.js. It doesn't use any pieces of IIS.

@Daniel15 is correct. Kestrel does not share IIS/HTTP.sys concurrent connection limits unless it is behind an IIS module (i.e. HttpPlatformHadler), so you are not going to run into the 10/20 concurrent requests "disease". I regularly test Kestrel on my Windows 10 laptop with hundreds of remote concurrent connections.


Rename Turing.Core to Turing.Essential

Fix https://github.com/TuringLang/Turing.jl/issues/1756 by renaming Turing.Core to Turing.Essential (maybe there's a better name? Shouldn't choose Base or Main though :stuck_out_tongue:).

Ah Essential is nicer than what I had in mind (e.g. TuringCore) :+1:
But should we maybe bump the minor version? I know Core is technically not exported, but I know a lot of people's code will break, e.g. I have snippets benchmarking AD backends that will now break.

Hmm yeah, probably safer. I wonder though if we could maybe even deprecate it with @deprecate_binding only in the top level Turing module, I hope that this would still fix the issue AND we could distribute this fix to all people with Turing.Core snippets (otherwise the have to pin their Julia versions manually to an older release). But I'm not sure if it's worth it (and of course I have to check first if the issue is still fixed).

Uuuh I did not know about @deprecate_binding; neat! I just tried it and it works:) We could just do that :+1:

I checked and deprecating Turing.Core with @deprecate_binding seems to work, the issue is still fixed.

I just tried it and it works:)

Hahahaha beat me again :smile:


NO-JIRA: chore(deps): update capz to v1.17.0

What this PR does / why we need it: Includes fix for OCPBUGS-39035
Which issue(s) this PR fixes (optional, use fixes #<issue_number>(, fixes #<issue_number>, ...) format, where issue_number might be a GitHub issue, or a Jira story:
Fixes #
Checklist

[ ] Subject and description added to both, commit and PR.
[ ] Relevant issues have been referenced.
[ ] This change includes docs.
[ ] This change includes unit tests.

/retest-required

/retest-required

This should fix https://issues.redhat.com/browse/OCPBUGS-39035, right ?

This should fix https://issues.redhat.com/browse/OCPBUGS-39035, right ?

Yes

Hey @Patryk-Stefanski could you please put in the PR why this update is needed?
/approve

/test e2-aks

/test e2e-aks

/lgtm


MRG: Tracker behavior at floor/ceiling

PR to address issues with tracker hitting floors or ceilings. Currently uses repeat_limit parameter to determine whether to count as reversals or ignore.

Looks like Travis fail is for something else.
@Eric89GXL @drammock @rkmaddox
Ready for review. I'll be away next week but will try to work on this when I am able. Thanks!

Let me know when I shoudl look again

@Eric89GXL Looks fine on my end, feel free to review whenever is convenient for you!

Hitting the limits more than just a quick brush is going to hose any threshold estimate you might do, so maybe it isn't worth all this thought.

The most critical thing for this mode is that, if you are at a limit, and the tracker decides that you should in principle exceed that limit (but in practice of course you can't), it should count as a reversal. How about we have two modes: 'reversal-opposite' (current behavior; i.e., make a reversal in the opposite of the response-indicated direction) and 'reversal-remain' (my proposal; i.e., stay at the same level instead of going in the opposite direction).
Either way, it's critical that 1) the thresholding function throw an error if you include any of these points in your computation (because it's going to be invalid), and 2) that there be some way of telling quickly (via function) if any of these points are in the last N reversals.

I've run a bunch of tracks to see if things are even working right as they are. Well...
Here's a 1 up 1 down case which definitely has some bizarreness. The first reversal is a true correct -> incorrect with the remain trials being all incorrect. This does not make sense to me because we have some reversals that aren't from a change in correctness but do have a change in direction and some changes in direction that don't result in reversals.

Here's a similar 1 up 1 down track that has a reversal at trial 5 that corresponds to a change in correctness without a change in direction (this happens every time there is an odd number of incorrects at a ceiling followed by a correct response).

Then we have this 2 down 1 up one which has been bumped down at trial 5 from the subject being incorrect at a ceiling and then has another step down from getting two correct answers. This seems wrong too.

Similar things going on in the 3 down 1 up case.

This raises the following questions:
In the ///\ case, do we want all of the changes in direction to be reversals-- /*/*/\ or only the ceiling ones-- ///? The former seems more reasonable to me.
How do we deal with the post-odd ceiling hit reversal as in the second case?
What should we do about extra steps down in the N down 1 up cases?
Is it worth counting the floor/ceiling behavior as reversals anymore or are the warnings sufficient?

This does not make sense to me because we have some reversals that aren't from a change in correctness but do have a change in direction and some changes in direction that don't result in reversals.

This wouldn't happen if we adopted my proposal of staying flat instead of bouncing, right?

This wouldn't happen if we adopted my proposal of staying flat instead of bouncing, right?

I believe so. I will try it out--particularly with the N down 1 up cases to make sure there aren't similar confounding cases.

Okay, but keep in mind that such stay-flat-because-we-can't-exceed-the-limit-but-want-to moves should count as reversals in terms of counting toward the limit / end of the experiment, but we should protect against ever using them to compute a threshold. Make sense?

Yup, I'll look at tr.threshold and throw in an error if repeat_limit is reversals.

Sorry to keep you in suspense! The no-bounce option seems to be working pretty well.

Have you convinced @rkmaddox? :)

I have been convinced through attrition.

(Currently trying to figure out why my Ubuntu "upgrade" killed both my CUDA and my MKL)

@rkmaddox cue sad trombone...
On August 9, 2017 12:42:08 PM PDT, rkmaddox<EMAIL_ADDRESS>wrote:

(Currently trying to figure out why my Ubuntu "upgrade" killed both my
CUDA and my MKL)

@Eric89GXL @drammock @rkmaddox
Looks like all the tests are passing now. Let me know if the current functionality is OK.

@larsoner (?)
I think I've addressed the issue. I updated the behavior, warning, error, and check_valid function. Anything I missed?

Yes @drammock made me change my username. I'll look tonight or tomorrow.

Looks like one of my tests is failing anyway, tomorrow's plenty early for you to look.

I was wondering when I'd get blamed for the name change.  Frankly I'm surprised it didn't happen sooner on Gitter.

You mean git blamed!

@rkmaddox did you want to look again?
FWIW I just upgraded to Ubuntu 17.04 to see if I could replicate your CUDA/MKL problems but everything seems to work okay over here after reinstalling PyCUDA (which needed to be recompiled due to newer CUDA). :(

Nah, I'm good.
Huh. Will try compiling PyCUDA from source. Didn't have to do that last time. The MKL thing I found very surprising.

If you're using the ones from the Ubuntu repo then it should just work. Weird that it doesn't.

Thanks @maddycapp27

Yay! Thanks @larsoner  (also sorry for all the confusion)

@maddycapp27 I have stop_reversals=10 and (intentionally doing the task terribly) I got this warning:
/home/larsoner/Documents/python/larsoner/adaptivetempcoh/expyfun/stimuli/_tracker.py:333: UserWarning: Tracker<PHONE_NUMBER>57136 exceeded x_min or x_max bounds 11 times.
  ''.format(self._tracker_id, self._limit_count))

It should only be 10, right? Or am I missing something? Either the message or the logic is wrong...

It's always (as long as I've been using it) done n_reversals = stop_reversals + 1 which I thought was odd but intentional.

This sounds like a bug to me, @rkmaddox is this intentional / what's the rationale?

Just kind of how the numbers shake out. A reversal includes the trials that come after it. So if you did a 1-reversal track, you would go down for a while, get one wrong, go up for a while, and the track would stop next time you got one wrong:
\
 \
  \  /
   \/

The above is a 1 reversal track (a one-reversal track should include one down part and one up part). n_reversals will be 2 when the track ends. We could decrement it when the track finishes to allow it to be a little more intuitive?

Would also want to decrement n_trials at stop (since I think it will be 1 too high as well).

Actually, maybe a 1-reversal track should just be down. I am open to changing it.

Actually, maybe a 1-reversal track should just be down. I am open to changing it.

So a 1-reversal track would mean "a track in which the responses indicated that it's time to change directions once", and n_reversals == 1.
Whereas right now a 1-reversal track means "a track in which the step actually changed directions once", and n_reversals == 2?

Correct.

I think I prefer the former description (one-reversal track is based on what responses indicate to do, and n_reversals == 1)? Okay with you @rkmaddox @maddycapp27 ?

I also prefer it, after consideration.

Makes more intuitive sense that way so I'm happy to work on fixing it.

Sounds like you should be good to get started when you have time


forms

[x] simple (text, number, select)
[x]  simple generated
[x] simple edit
[x] detail (different options)
[x] crud

see #18


Parquet logger has reawaken from its slumber

After years (a year and a half? two years?) of quiet, the logging inside of Parquet has reawaken and is spamming all of our logs.
This is because when we upgraded to Parquet 1.7.0, the root package of Parquet changed from parquet to org.apache.parquet and we didn't update this line in the ParquetLogger utility.

lol