[$500] Workspaces - Display picture/Avatar isn't shown in Workspace share Code page

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 settings -> workspaces -> new workspace
Now click the display avatar -> edit photo -> upload photo
Notice that the uploaded photo is displayed.
Now go to #announce or #admin or workspace chat of the same newly created workspace.
go to details page.
Notice that  there is 'expensify' symbol in QR code. i.e display picture of corresponding workspace isn't shown.

Expected Result:
display picture of corresponding workspace should be  shown in share code page.
Actual Result:
display picture of corresponding workspace isn't shown in share code page for workspace.
Workaround:
Unknown
Platforms:

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

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

Version Number: v1.3.68-15
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/115492554/043ba9f9-cf8e-49ec-87af-564c63b459ba
https://github.com/Expensify/App/assets/115492554/a54c8906-fc54-4bf0-ba3e-8d443afaca92
Expensify/Expensify Issue URL:
Issue reported by: @ashimsharma10
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1694259150016599
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01f242a32573a62742
Upwork Job ID:<PHONE_NUMBER>614237184
Last Price Increase: 2023-10-03

@sobitneupane what do you think of the proposal that has come in?

@abekkala I'm uncertain whether not displaying avatars in QRCode for Workspace is a bug or an intentional design choice. Can you please confrim if showing avatars is the desired behavior?

Proposal
Please re-state the problem that we are trying to solve in this issue.
Workspace avatar isn't shown in share-code page of the workspace
What is the root cause of that problem?
https://github.com/Expensify/App/blob/2ea1c71f9ea5d47b227126c8f2cf792300f0d9db/src/pages/ShareCodePage.js#L70
In the above code, isReport is true for workspace rooms and chats.
This is the root cause
What changes do you think we should make in order to solve the problem?
We need to check if the report is workspace rooms or chat
        const isWorkspace = isReport && (ReportUtils.isAdminRoom(this.props.report) || ReportUtils.isAnnounceRoom(this.props.report) || ReportUtils.isPolicyExpenseChat(this.props.report));

And then get the proper logo as below
        let logo = UserUtils.getAvatarUrl(this.props.currentUserPersonalDetails.avatar, this.props.currentUserPersonalDetails.accountID);
        if (isReport) {
            if (isWorkspace) {
                logo = ReportUtils.getWorkspaceAvatar(this.props.report) || expensifyLogo;
            } else {
                logo = expensifyLogo;
            }
        }

Result

What alternative solutions did you explore? (Optional)

Yes - the avatar should show
https://github.com/Expensify/App/issues/20993
@deetergp it looks like we used to show the avatar but not anymore.

@sobitneupane is there a proposal here that you agree with to move forward with the fix?

@abekkala Thank you for providing the update. Just to clarify, are we aiming to display the workspace avatar, which could be either user-uploaded or the default avatar, for every room(either default or user-created) on the Share Code Page.

The proposals we have received so far displays workspace avatar on the Share Code Page only if it is user uploaded image. In case of default avatar, expensifyLogo is used.

@abekkala Thank you for providing the update. Just to clarify, are we aiming to display the workspace avatar, which could be either user-uploaded or the default avatar, for every room(either default or user-created) on the Share Code Page.

Ah, good clarification. I believe the answer is yes. @deetergp just want to get a second opinion.

In order to show default avatar of workspace rooms in share code page, I think we need to have URLs for these default avatars because the react-native-qrcode-svg library doesn't support component type logo.
Another option is to make some changes to the library to customize the logo

@deetergp maybe you can weigh in here? https://github.com/Expensify/App/issues/27288#issuecomment-1732694706

@abekkala Thank you for providing the update. Just to clarify, are we aiming to display the workspace avatar, which could be either user-uploaded or the default avatar, for every room(either default or user-created) on the Share Code Page.

I agree that this seems like the right behavior.

@ZhenjaHorbach @s-alves10 If you are still interested, please consider this as expected behavior.

@sobitneupane
Did you check https://github.com/Expensify/App/issues/27288#issuecomment-1736832823? Please let me know your thought on that

Sorry for the delay.
I will try to review before EOD tomorrow (NPT).

In order to show default avatar of workspace rooms in share code page, I think we need to have URLs for these default avatars because the react-native-qrcode-svg library doesn't support component type logo.
Another option is to make some changes to the library to customize the logo

How are we handling user default avatars? We should follow similar approach here as well.

it looks like we used to show the avatar but not anymore.

@abekkala We were not showing avatars from the beginning for reports. We used to show room.png for reports (added in this PR) which was later replaced by ExpensifyLogo.

@sobitneupane when reviewing earlier discussions we want to show the workspace avatar. Either an user-uploaded or default avatar, for every room(either default or user-created) on the Share Code Page.

@s-alves10 https://github.com/Expensify/App/issues/27288#issuecomment-1754796310

@sobitneupane

How are we handling user default avatars? We should follow similar approach here as well.

We have URLs for user's default avatars

Started discussion in slack.

@sobitneupane checking in again - do you feel there is a proposal here that will work?
If not, I can pull in someone to get a fix out for this

@sobitneupane is OOO this week

@sobitneupane are you back to review the proposals on this one? Do you need me to pull someone else in?

@sobitneupane
My latest proposal can solve the issue without adding new URLs for workspace default avatars. Please check

Sorry for the delay here. I was OOO. I will try to get to it in the weekend.

@sobitneupane any update here?

@s-alves10 I believe the better idea is to use url for workspace avatars if that is absolutely necessary.
 /* an image source object. example {uri: 'base64string'} or {require('pathToImage')} */
  logo?: ImageSourcePropType;

If the avatars are locally available, can we use require('pathToImage')?
In the meantime, I will try to get more people involved in the Slack discussion

If the avatars are locally available, can we use require('pathToImage')?

We can't use it. That returns a component. That's why I suggested to patch the library

@sobitneupane is the proposal sufficient? If not, I can pull someone in to get this one fixed asap

If the avatars are locally available, can we use require('pathToImage')?

We can't use it. That returns a component. That's why I suggested to patch the library

@s-alves10 Rather than a patch, can we propose the upgrade in the upstream repository react-native-qr-code-svg?

Of course, we can create a PR there, but it looks like the last PR was merged in Feb 2023 and there are 10 pending PRs

We are still having discussion in slack. @s-alves10 Please feel free to add your thoughts in the slack disucssion.
I think we don't encourage to apply patch. So, if possible, let's look for other solutions.

@sobitneupane do we have an acceptable fix for this? If not, I'll be pulling someone in today that can get this one moving.
Thanks!

Followed up, it sounds like they are interested

Hi Georgia and Expensify, thanks for showing the interest. I'm currently not available to deal with the taking over. May I contact you in a week or two?

Should we hold this issue that long?
cc @roryabraham @sobitneupane

Not a critical issue. So, I believe we can wait or a week or two.

Making weekly while we wait for reply from lib owner

followed up with the repo owner

@grgia I'm going ooo though Jan 03.
I don't think there will be much movement through then so I'm keeping myself assigned as by the time I return this probably won't be at the payment stage for me to take action.
However, if things progress quickly you can reapply the Bug label to get someone one this to submit payment.
(I'll also be checking in on my GH's while I'm ooo)

@grgia I know this one wasn't considered critical but are we still moving forward with this?

@abekkala I'm still discussing details via email with repo owner

bumped one final time, will call it and decide next steps pending next week

@grgia is there any update for this one?

Yes, I'm in contact with the repo owner

@grgia any update on moving forward here?

Making monthly, I think this is the way we should handle this, but it's not that high priority. Making monthly until we take over the repo

@grgia - because this is internal and you've been handling:

Is this truly a high enough priority / ROI bug to fix?
Will this affect more than x # of users?
Does it affect users who pay us?
How much of an edge case is it?
If we fix the bug later, in a year or two, will that be OK?

Maybe this can simply be closed for now?

@grgia given the age of this one - do you think this can simply be closed for now in favor of higher prioritized issues?

Related discussion here: https://expensify.slack.com/archives/C036QM0SLJK/p1710800681715819?thread_ts=1710800218.107499&cid=C036QM0SLJK

As discussed on slack I will be taking a look on this one and will prepare a PoC to push this forward

Thanks @Kicu !

@kevinksullivan I'm ooo until April 08 - I'll be taking back any Open issues once I return

CURRENT STATUS:
@Kicu will be working on a fix (no payment required)
PR Review will be done by @sobitneupane (payment will be done via NEWDOT)

@Kicu would you mind re-summarizing where you're at with this on the GH?

here's my understanding after reading this whole (quite long 😅) discussion:
Original issue/bug
The original issue is that if a user enters the details of a channel like #announce or #admins and clicks on "Share" we expect to display workspace avatar inside the QR code, but we instead display expensify logo.
Root cause of that problem
In my mind there are 2 roots causes here:

on channel(report) Details Page we do not try to display the workspace avatars at all (we only display expensify logo) -  this can be easily fixed but only for user uploaded images,
[this is main problem] the library that we use to generate QR codes (https://github.com/awesomejerry/react-native-qrcode-svg) does not support providing SVG format for the logo image, and the default workspace logos are SVGs in our code.

According to this discussion on slack: https://swmansion.slack.com/archives/C036QM0SLJK/p1710800218107499 and comments in this issue we would like to take over the library and update it to allow displaying SVG logos.
Planned next steps

I have forked https://github.com/awesomejerry/react-native-qrcode-svg and I will work to provide a PoC PR showing how we could implement displaying SVGs - so that we can agree on the solution. Hopefully soon expensify will be the owner of the repo
[OPTIONAL] there is a faster fix that would allow to display just the user uploaded workspace avatar for now, because that already is already done in the app. If you go to Profile > workspaces > workspace Page and click "Share" - there it works for user uploaded images, but not for SVGs. Not sure if we want to do this partial fix while we wait for the fix in the library? @grgia

Notes

this problem is not present for user avatars, because someone uploaded a .png version of user default avatars to a cdn and that is what is used for User share page;
uploading workspace default avatars as png is not feasible as there are too many

Thanks @Kicu! Looking forward to the POC.

on channel(report) Details Page we do not try to display the workspace avatars at all (we only display expensify logo) - this can be easily fixed but only for user uploaded images,

I think we'd update this once we have a working solution for the SVGs, so the solution is consistent.

Alright, here is some PoC code:

PR to my fork of react-native-qrcode-svg: https://github.com/Kicu/react-native-qrcode-svg/pull/1 - these are the changes required to display svg inside QR code, feel free to review and tell me if it makes sense
draft PR to Expensify app that uses ☝ to actually display the svgs: https://github.com/Expensify/App/pull/39072 - but for now I only updated Workspace sharing, can do more tomorrow

Both require more polishing but I wanted to quickly see that this is possible and not use too much time on misc polish.
Also I'm not sure how close we are to actually owning the library.
Please tell me what next steps do you want me to take.

Nice one! @sobitneupane could you please review https://github.com/Kicu/react-native-qrcode-svg/pull/1 when you get a chance. Also we might wanna apply that fix to our fork of the repo once ready.

Just wanted to stress out that the draft PR in Expensify is not 100% done, but it shows that the svg's are doable, so perhaps only a quick look is enough to tell me that this direction is correct.
Also in the long run what are the chances of actually having ownership of react-native-qrcode-svg do you guys think? There are some more updates that could be done there (rewrite it to TS is one)

Thanks for the update @Kicu I believe we are going towards the right direction. Only improvement I could see is making use of existing logo prop if possible, else everything looks great.

iOS: Native

MacOS: Chrome / Safari

cc: @luacmartins @grgia

Thank you @sobitneupane

Only improvement I could see is making use of existing logo prop if possible

For now I decided that separate prop makes more sense, just because the flow of svg asset has to be so different. One problem is that if logo prop will be a string then if its a URL pointing to a raster image we use Image but if it will be pointing to an .svg then a different component needs to be used.
I decided 2 props are perhaps a bit cleaner (more verbose) than a lot of "magical" if-statements 😅 I'd leave this as is for now if you think its not too terrible.

@luacmartins @grgia what would the next steps with this? Should I update my PR to Expensify/App to cover every case of our QR code avatars?
What is the long term solution for the library, do you guys want to do your own fork? I don't think patch-package is a good solution for this as the changes span multiple files

@Kicu I think we will need some styling changes. We should add some margin around logoSVG and decrease it's size to match it with logo.

https://github.com/Expensify/App/issues/27288#issuecomment-2024760317 - @luacmartins @grgia

@luacmartins @grgia what would the next steps with this? Should I update my PR to Expensify/App to cover every case of our QR code avatars?
What is the long term solution for the library, do you guys want to do your own fork? I don't think patch-package is a good solution for this as the changes span multiple files

Thanks for the ping, I had missed that comment. I posted in Slack asking for more opinions on whether we should fork this lib.

Bumping in email again 🤞

@luacmartins Should we wait for the fork and make these changes there or can we go ahead and merge this PR?

@luacmartins sure thing, will try to update everything today and ping you guys when done.
Also some extra work was done by us to improve this qr project, and a collague @war-in opened a PR with an example app written for this library, so that you can test QR generated in isolation.
If you're interested you can take a look: https://github.com/Kicu/react-native-qrcode-svg/pull/2

@Kicu here's the new fork - https://github.com/Expensify/react-native-qrcode-svg/. Could you try opening a PR on that fork? Let me know if you have any isseus

@luacmartins thanks, it seems I don't have access to push to this repo:
mateusz@~/swmansion/projects/react-native-qrcode-svg % git remote -v
expensify-fork	git@github.com:Expensify/react-native-qrcode-svg.git (fetch)
expensify-fork	git@github.com:Expensify/react-native-qrcode-svg.git (push)
origin	git@github.com:Kicu/react-native-qrcode-svg.git (fetch)
origin	git@github.com:Kicu/react-native-qrcode-svg.git (push)

mateusz@~/swmansion/projects/react-native-qrcode-svg % git push expensify-fork mateusz/add-svg-logo
ERROR: Permission to Expensify/react-native-qrcode-svg.git denied to Kicu.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Please take a look.
But if its problematic to give me access then I can just fork your fork I guess, and do the PR from fork.

Thanks for letting me know @Kicu. I've bumped our infra team member. I'll let you know if you should fork or not soon.

@Kicu could you fork our fork and then open a PR from your fork? I think that's usually the flow we have for other repos.

@luacmartins @sobitneupane my opened to the fork: https://github.com/Expensify/react-native-qrcode-svg/pull/1

I will push this task forward this week. I got involved in Search v1 which had priority so this was left a bit forgotten

@Kicu can you provide an update

@abekkala hey sorry for the delays here.
I intend to push and finish this but I have not yet started. Partial reason is because we had some work on avatars recently (parts of which Im doing). Some changed the logic of where their source comes from (purely tech changes) but also how they are styled (for workspace avatars, check this: https://github.com/Expensify/App/pull/39637).
There also was a hotfix merged and I have an open PR refactoring avatar code.
Before returning to work on this task I needed to wait until all other changes are merged.
I expect to implement this starting next week and it should not be a lot of work. Feel free to ask any additional questions if something is unclear.
tl;dr
We had a lot of refactor around avatars recently - better to finish them all before implementing this issue.

@abekkala hey, first of all sorry it's taking so long.
However please keep in mind that for about 1.5 week of the last 2 there was a merge freeze, which means a lot of code was sitting and waiting to be merged, which slowed things down.
Status is:
this PR https://github.com/Expensify/App/pull/39072 mostly solves the problem but its not yet fully up to date, but is very close to being done.
Specifically I was waiting for another one of my PRs (avatar related) to be merged: https://github.com/Expensify/App/pull/41846 - and that one was finally merged just yesterday.
So now I need 1-2 days to bring back the #39072 and test it. Since we have holidays on Thu and Fri this week, the PR will be ready for review either today by eod or on Monday.
Hope that clears it up.

Thanks for the update @Kicu. I'd still focus on the Search sorting PR since that's a higher priority, but let's get this one done soon after.

Status update:

sorry this is taking so long - I'm doing this inbetween Search and react concurrent mode tasks, which have a higher prio
the current status is that the PR and code is ready for this, however there is a bug with SVG displaying in ios, which makes the logo display badly or not at all
I have discovered that the problem lies in one of our dependencies - react-native-svg which is the lib that we use to render SVGs. After update to new architecture/Fabric they have a small bug when re-drawing svg with another svg inside it; so temporarily this is a blocker

Next steps:
This week I plan to prepare a minimal reproduction of the bug and publish it to https://github.com/software-mansion/react-native-svg
I also should be able to actually create a PR with the fix, because I have some help from the maintainer of the library. After this we will still need to wait for a new version, and then my original PR can move forward.

Thanks for the update @Kicu!

Still being worked on

can someone please reopen 😅 I started to work on a fix to react-native-svg, and once the fix is done the can move forward with the original PR

We still need this

Update:
Currently I'm waiting for 2 PRs to be merged in react-native-svg:

https://github.com/software-mansion/react-native-svg/pull/2318 (merged)
https://github.com/software-mansion/react-native-svg/pull/2327

After these both are merged we will have to update the version of react-native-svg in the project, and then I can move forward with original task, which hopefully is already working.
Will update the PR soon

Both those PRs were published in react-native-svg v15.4.0, so we should be ready to move onto the next step of upgrading react-native-svg in E/App

Correct. I've bumped it here in my PR for this issue: https://github.com/Expensify/App/pull/39072/files
There are no big breaking changes and I verified that all usages of svg in our App work. The only BC on v15 was bumping the version of supported ios. Otherwise smooth update, and is used in this feature.

The issue was solved by the PR merged and there and there was 1 follow up created for this here: https://github.com/Expensify/App/issues/45876

This was deployed to production last week. https://github.com/Expensify/App/pull/39072#issuecomment-2244524942 This should be ready for payment.

PAYMENT SUMMARY FOR JULY 30

Fix: @Kicu [swm - no upwork payment]
PR Review: @sobitneupane [$250] payment via NewDot

$250 approved for @sobitneupane based on this summary.

@abekkala @garrettmknight , I'm the issue reporter . Haven't received payment.  Its an old time bug. 😄

Bump @garrettmknight . Thanks !

@abekkala can you help @ashimsharma10 out?

Ah yes - this was reported in September before we stopped the bug bounty.

$50 payout for @ashimsharma10

@ashimsharma10 can you please link your Upwork profile, I was unable to find you!

@abekkala Thank you !
Find me here https://www.upwork.com/freelancers/~018a92cf13e1e88eed

@ashimsharma10 $50 Offer Sent

@ashimsharma10 payment sent and contract ended - thank you! 🎉


Private packages such as "ajv" and "class-validator" shouldn't share the name of official npm packages. This causes false positives with security scans, among other issues.

These private packages should probably be renamed to something like "ajv-wrapper" or "ajv-plugin" to avoid being confused for the official package.
As an example "ajv" versions before v6.12.3 have a vulnerability (detailed here: https://nvd.nist.gov/vuln/detail/CVE-2020-15366).
The private "ajv" package included in the project simply has a version of "1.0.0"

Security scans find a false positive here because the name of the package is identical to the official "ajv" package, even though the actual package is >= v6.12.3

Can these private packages be renamed to someone more descriptive which doesn't match an official package?
Thanks!

maybe rename them to @hookform/resolvers/ajv ? feel free to send a pr on this.

Thanks @bluebill1049 !
I made a PR here: https://github.com/react-hook-form/resolvers/pull/424

Fix in #424


Taking a photo:  Error - Specific cast is not allowed.

Hi, go an issue with taking a photo. Can't for the life of me make it work.
Issue Information
Trying to take a picture with the camera using the example code:
var file = await CrossMedia.Current.TakePhotoAsync(new Plugin.Media.Abstractions.StoreCameraMediaOptions
{
Directory = "Sample",
Name = "test.jpg"
});
I get an exception thrown: Specific cast is not allowed.
I do the normal
if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
which the code gets past no problem.
I've tried a variety of media options but just keep getting the same error.
Anyone help? I'm not sure if it's even to do with the MediaPlugin or some other configuration thing, as I can't believe I'm the only one having this problem.
Any pointers would be most appreciated.
Cheers,
Jugs
======================================
Version Number of Plugin: V3.1.3
Device Tested On: Motorola MotoG 2014, BlackView 7
Simulator Tested On: None
Version of VS: 2017
Version of Xamarin: <IP_ADDRESS>0555
Versions of other things you are using: Windows 10 16299.309

@Jugs0101 that's rather strange! I am not able to reproduce this issue.
Could you try clone the source code and try debugging?

Hi Prashant,
Thanks for responding.
I have tried setting up the project from scratch a number of times, and yes, debugging it throws the exception at that line. I have also reinstalled VS 2017. It's also a brand new computer with virtually nothing else on it.
Would more detail on the actual exception be of help? It talks about Java.Interop.Tools.TypeNameMappings.JniType.ToJniNameFromAttributes and Java.Interop.Tools.TypeNameMappings.JniType.ToJniName, but it's such a big load of text it's difficult to decipher what it thinks the problem is.
I'm also new to Xamarin development, but not development in general.
Any further help would be most appreciated.
J

Hi Andy,
Thanks for that, yes I am using Live Player to test. I'll try what you suggest later and let you know how it goes.
Thanks for replying!
Cheers,
J

The live player is for getting started with Xamarin.Forms and not compatible with all libraries as the source is interpreted. Please compile the application to run it.


MAoT Concealment from Aerial Detection: Add buildings to definition query for output

Add buildings to the definition query for concealment vs just vegetation.

@erikreid I'm looking at the Concealment tool but i'm not seeing where the buildings are used as input into the tool. Right now the tool accepts:

Input Area of Interest
Input Combined Vegetation Coverage
Output Concealment
Spatial Reference (optional)

I checked for updates to Generate Intermediate Layers but don't see the UTDS StructuresSrf added to it. Unfortunately I don't have any way of testing this one.

The concealment tool bases its analysis on the F-Code, which are pulled from the intermediate layer generation. You are correct that the Generate Intermediate Layers do not take StructureSrf into account. Other tools within the MAoT toolbox do use that layer because they pull directly from the TDS dataset. So we can either adjust Concealment to pull in those additional layers, or adjust the Generate Intermediate Layers script to pull in the StructureSrf while processing. This brings up two concerns: 1) If we adjust the Generate Intermediate Layers to take StructureSrf into account, do we adjust all of the other tools to avoid feature duplication or 2)  Include the ability to add additional features when running the analysis. Either way it will take some time to make the adjustments.

Perhaps we need to start thinking about another configuration tool for buildings, say a Buildings and Structures layer. Again there are different types of structures spread across UTDS datasets (eg. BARN is under AGRICULTURE and CASTLE is under MILITARY). With that we can then add an option to the tool to include this layer, just as we did for Combined Vegetation Coverage. That sound like a useful idea?

@erikreid - please take a look at this when you get back tot he solutions division.

@jrweakland Hey JRW any idea where Erik left this one? You still have something in your backlog?

@jrweakland is this one still valid? If so I will keep it around, if not please close it out. Thanks.

The Military Aspects of Terrain tools will not be enhanced. Last supported version was 10.1. These tools are retired as of the April 2018 release. Future work is planned for environmental impacts on operations, release date TBD.


support test app without run

Hi, there
This PR add a server_test module to support test app without run, this feature is like vapor Testable Application .
The example
use tide::{Request, Response, Server};

#[async_std::main]
async fn main() -> std::io::Result<()> {
   get_app().listen("<IP_ADDRESS>:8080").await?;
   Ok(())
}

fn get_app() -> Server<()> {
   let mut app = tide::new();
   app.at("/hello").get(hello);

   app
}

async fn hello(_: Request<()>) -> tide::Result<Response> {
   Ok("Hello, world!".into())
}

#[cfg(test)]
mod tests {
   use super::*;
   use tide::server_test::ServerTest as _;

   #[async_std::test]
   async fn test_hello() -> tide::Result<()> {
       let mut res = get_app().test_get("/hello").await?;
       assert_eq!(res.take_body().into_string().await?, "Hello, world!");
       Ok(())
   }
}

Please review it. thank you.

same as #501

@vkill thanks for putting in the time for this PR! Yes sorry, #501 had been in the works for quite a while, but not really written down anywhere that that was the direction we wanted to take it.
Either way, I hope that this will help make testing easier!


Taqify ctez

Convert (taq'ify) https://github.com/tezos-checker/ctez to use Taqueria

Duplicate of #872


Must specify --db when using --collections with Mongo 3.X

hi @heyryanw. Thanks for the PR.
Can you provide me with a link to a page describing this change?
Also, the test suite seems to fail. Are you able to fix that in your PR?
Thanks

Not in their documentation for the tool, but ran into it myself: https://github.com/mongodb/mongo-tools/blob/master/mongodump/mongodump.go#L58
CI seems to be hung, but think I got the tests fixed and pushed.

@heyryanw you can already specify the name of the DB and it will be added to the command: https://github.com/backup/backup/blob/289489727698e7f6bd4648b823da6b17a7c556f8/lib/backup/database/mongodb.rb#L127-L129
There's no need to add it by default always. It wouldn't be necessarily backwards compatible with v2, which we would want to keep.


[构建失败] icu

This package is really weird as you can expect different test suite errors when compiling both on OBS and local. But there is a chance to can compile successfully. TestThreadedIntl and TestTimeRoundTrip are your worst nightmare, for sure :)
Error logs:
[ 4823s]          TestThreadedIntl {
[ 4823s]          YDDÂ 123.46<Expected
[ 4823s]           [ Different lengths ]
[ 4823s]          YDDÂ 123.456<Result
[ 4823s]
[ 4823s]          PatternFormat:
[ 4823s]          1:A customer in Burkina Faso is receiving a #8 error - U_INDEX_OUTOFBOUNDS_ERROR. Their telephone call is costing 2,32Â DM.<Expected
[ 4823s]                                                                                | ||    <Differences
[ 4823s]          1:A customer in Burkina Faso is receiving a #8 error - U_INDEX_OUTOFBOUNDS_ERROR. Their telephone call is costing 1,00Â DM.<Result
[ 4823s]
[ 4823s]          PatternFormat:
[ 4823s]          1:A customer in Burkina Faso is receiving a #8 error - U_INDEX_OUTOFBOUNDS_ERROR. Their telephone call is costing 2,32Â DM.<Expected
[ 4823s]                                                                                | ||    <Differences
[ 4823s]          1:A customer in Burkina Faso is receiving a #8 error - U_INDEX_OUTOFBOUNDS_ERROR. Their telephone call is costing 1,00Â DM.<Result
[ 4823s]
[ 4823s]
[ 4823s]          } ERRORS (3) in TestThreadedIntl (239ms)
[ 4823s]

[ 5331s]          TestTimeRoundTrip {
[ 5336s]          FAIL: Time round trip failed for tzid=America/Matamoros, locale=en, pattern=O, text=2014.11.02 01:00:00.000 GMT-6, time=1414908000000, restime=1414911600000, diff=3600000
[ 5336s]
[ 5336s]          } ERRORS (1) in TestTimeRoundTrip((73.9s))

Notice for TestTimeRoundTrip: you can get various timezone errors, not limited to this.

https://gitee.com/openeuler-risc-v/icu/pulls/1


https://maud.lambda.xyz "Server not found"

Cannot access the doc.

http://isup.me/maud.lambda.xyz says it's up, as does my server in Italy. Is there an issue with your DNS?

This might be related to the recent DDOS attacks on DNS?

Testing now it works. Might have been that.


⚠ Bofrost.at has degraded performance

In ce82152, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1238 ms

Resolved: Bofrost.at performance has improved in 6553b30 after 21 minutes.


Create forum for googleable issues

In googling stuff like "How to X in typst", I am getting rather terrible results. Essentially none.
There should be some forum for a persistent and googleable online resource where users pose questions, and others can answer. Just like Stack Overflow for Python, or Discourse for Julia and LibreOffice. Personally, I am a fan of Discourse.
Note that this is probably too early to create such a forum, because Typst will change, and the old posts will stay around and create confusion in the future. But once the core devs feel that the API has settled somewhat, a forum would be great.

https://github.com/typst/typst/discussions

There is a post about global variables:

However, if I search this using brave search, I can not find it:

Google does not do better:

Even being ridiculously specific does not get me the result I know exists. Brave:

Google:

So while it is a good idea, it is not really searchable from a search engine. Perhaps for now it is good enough to search within that discussion forum, but in the future, hits on the usual search engines is really important for people to fint the help they need quickly to do specific things.

Searching for the query site:https://github.com/typst/typst/ global variable works somewhat.
I feel the issue is just we have to wait until Google/other search engines pick the pages up, and some SEO on GitHub's side.


Are the FOODON terms included in FIDEO out of synch with FOODON?

While working with FIDEO I noticed a difference between FOODON in FIDEO and FOODON directly.
E.g.: The term "beverage" has the ID obo:FOODON_03301977 in FIDEO, but the same ID is "beverage food product" in FOODON (there is a different "beverage" class in FOODON with the ID obo:FOODON_00003202).
How should inheritance in FIDEO of FOODON be treated? Is it an inconsistency or a design choice?

FIDEO (and all OBO ontologies) should provide base modules to avoid this highly prevalent problem.
See: https://github.com/INCATools/ontology-development-kit/blob/master/docs/ReleaseArtefacts.md
General intro here: https://oboacademy.github.io/obook/explanation/owl-format-variants/


IWW Issue #18, September 8th 2020

This pull request is for gathering links for the September 8th issue of the Immersive Web Weekly newsletter for the W3C Immersive Web Community Group.
If you have a link to a news article, event, artwork, or project that is directly related to the immersive web then we welcome your help!
To submit a link comment below using this template:
title: Example title of link
url: https://example.com/
author: Alice Smith and Bob Fe
content: A short description of what is at the link and why it's related to the immersive web

Please keep in mind that comments here and all submitted links are public!
We keep each issue pretty short so we won't immediately use every submission but we keep track of them all and they may appear in a later issue.
Deadline
IWW goes out each Tuesday morning Pacific time.
Trevor will edit each issue on the Monday before (in this case that Monday is September 7th) so submissions after that will roll over for use in future issues.
If you need editorial support then email @TrevorFSmith<EMAIL_ADDRESS>

title: WebXR APIs and Examples Video
url: https://www.youtube.com/watch?v=ypSkIYpJjE8
author: Ada Rose Cannon
content: Immersive Web Chair Ada Rose Cannon explains the WebXR Device APIs with example applications.


Some warnings are missing

It seems like some warnings are missing from all recent IDEs (Rider, Visual Studio 2017, Ionide and FSI)
Repro steps
The following code contains a warning, as the generic parameter 'a is constrained to string because of the parameter f in cache.GetOrAdd(_, f):
let internal memoizeBy (getKey : 'a -> string) (f: 'a -> 'b) : 'a -> 'b =
   let cache = System.Collections.Concurrent.ConcurrentDictionary<string, 'b>()
   fun (x: 'a) ->
       cache.GetOrAdd(getKey x, f)

Use this code snippet in recent Visual Studio, Ionide or Rider.
Expected behavior

Actual behavior
No Warning at all.
Known workarounds
Use older versions
Related information
There have been reports on Slack that other warnings seem to be no longer shown (like "use new on IDisposable), but I haven't actually verified anything.
If the impact of this are indeed ALL warnings, the severity should be considered very high.
Even if the impact is only for a particular subset of warnings I think the severity should still be considered high as missing this warning along can (an has already) cost a lot of hours and frustration.
Also this seems to be a regression as it worked previously.
@Lleutch Did some testing and says this has been introduced "between FCS 9.0.1 and FCS 10.0.3"
/cc @Krzysztof-Cieslak @vasily-kirichenko @Lleutch

I can reproduce it: no warnings for this specific function in latest VS 2017 and Rider: neither in the compiler output nor in the IDE. However, there is a warning for this simpler function:

I can reproduce it on a ~10 months old revision, so it's not a very recent regression.

I am adding that repo here :
https://github.com/Lleutch/VFT-3752
It is regarding the different versions of FCS returning or not the expected warnings.

@dsyme is it not considered a regression anymore?

Yes, this is a regression.  I don't know why I changed the label

So after fixing this it seems like the compiler has thrown all warnings away while doing overload resolution. This would explain @vasily-kirichenko's finding, and that other warnings might be missing as well.

@matthid Super, thanks for looking into this


Issue/1812 support archive (#2013)

Pull request opened by the merge tool on behalf of #2013

Merged in 9cdaddcaf5c30d18c6f4e8d11d81532662ebdde0


Db adif

I saw you wanted to work on this.  I worked with ChatGPT to write this little python script.  I hope it helps!
It basically works, and includes the operator.  It could use some testing, and different contests may need custom mappings.

suggest you could use a modification of the replayer.py script to do most of this.
"It could use some testing" -- please do that; I am terrifically short on time these days.


Endpoint for Game List per User

Connect game table with user table through primary keys (id).
Each User should have a unique list of games in their own game library


Replace AlexNet example with smaller model

The AlexNet model weight file used for classification is large--233MB. This is too large for GitHub to handle, which forces us to use Git LFS for these test files (the other weight file--95MB--is also stored in Git LFS). Switching to a smaller model, such as SqueezeNet, would allow us to avoid using Git LFS in the repository.

https://github.com/intel/openvino-rs/pull/140 removes the need for Git LFS on this repository, but the downloaded file is still large.


Refactor print, clipboard, load/unload events

This is a work item for #685.
print:

[ ] https://developer.mozilla.org/en-US/docs/Web/Events/afterprint
[ ] https://developer.mozilla.org/en-US/docs/Web/Events/beforeprint

clipboard:

[ ] https://developer.mozilla.org/en-US/docs/Web/Events/copy
[ ] https://developer.mozilla.org/en-US/docs/Web/Events/cut
[ ] https://developer.mozilla.org/en-US/docs/Web/Events/paste

load/unload

[ ] https://developer.mozilla.org/en-US/docs/Web/Events/abort
[ ] https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload
[ ] https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoaded
[ ] https://developer.mozilla.org/en-US/docs/Web/Events/load
[ ] https://developer.mozilla.org/en-US/docs/Web/Events/readystatechange
[ ] https://developer.mozilla.org/en-US/docs/Web/Events/unload

AC:

all pages migrated and reviewed
BCD updated

I reckon these are ready for review now. For events that bubble, I've tried making the "event target" page the main one and pointing to it from the other targets.
print events:
https://developer.mozilla.org/en-US/docs/Web/API/Window#Print_events
clipboard events:
https://developer.mozilla.org/en-US/docs/Web/API/Element#Clipboard_events
https://developer.mozilla.org/en-US/docs/Web/API/Document#Clipboard_events
https://developer.mozilla.org/en-US/docs/Web/API/Window#Clipboard_events
But I'm not sure whether these events are defined on Element or HTMLElement, or where the on- properties are defined for the other targets.
load/unload events:
https://developer.mozilla.org/en-US/docs/Web/API/Document#Load_unload_events
https://developer.mozilla.org/en-US/docs/Web/API/Window#Load_unload_events

OK, here's a review!
The events here look mostly really good.
The cut/copy/paste ones feel a little weird because of the different interface placing of the events and handler property pages, but I remember the discussions, and think the outcome works OK.
The abort event page still seems to be at the old location: https://developer.mozilla.org/en-US/docs/Web/Events/abort. Did you not create this one for a particular reason?
On https://developer.mozilla.org/en-US/docs/Web/API/Window/DOMContentLoaded_event, the spec table points to an odd place. Wouldn't it be better to point to https://html.spec.whatwg.org/multipage/indices.html#event-domcontentloaded ?
https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event — there's a mention of DOMContentLoaded in the intro para that should be turned into a link, code font, or both.
https://developer.mozilla.org/en-US/docs/Web/API/Document/readystatechange_event - the corresponding onreadystatechange handler property page doesn't exist. I take it you are just leaving this for now? I think that's what we agreed.
BCD looks to be there.

Thanks for the review @chrisdavidmills !

The abort event page still seems to be at the old location: https://developer.mozilla.org/en-US/docs/Web/Events/abort. Did you not create this one for a particular reason?

I did look into this, but never wrote it down and then forgot about it. There are I think a few different abort event, including IndexedDB's abort, HTMLMediaElement's abort, and XMLHttpRequest's abort, all of which I've migrated already.
There's also according to the spec one that fires on Window targets when the document load is aborted (https://html.spec.whatwg.org/multipage/browsing-the-web.html#aborting-a-document-load). However it seems as if no browsers support this event properly (https://github.com/whatwg/html/issues/3525). So I think maybe we should just delete this page. Or I could try migrating it if you think its worth doing.

On https://developer.mozilla.org/en-US/docs/Web/API/Window/DOMContentLoaded_event, the spec table points to an odd place. Wouldn't it be better to point to https://html.spec.whatwg.org/multipage/indices.html#event-domcontentloaded ?

Thanks, this is kind of done. This was an error in the original page that I didn't double-check. I couldn't find a reference for this event in the W3C specs so I just deleted that row.

https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event — there's a mention of DOMContentLoaded in the intro para that should be turned into a link, code font, or both.

Done, thanks.

https://developer.mozilla.org/en-US/docs/Web/API/Document/readystatechange_event - the corresponding onreadystatechange handler property page doesn't exist. I take it you are just leaving this for now? I think that's what we agreed.

Yes.

I did look into this, but never wrote it down and then forgot about it. There are I think a few different abort event, including IndexedDB's abort, HTMLMediaElement's abort, and XMLHttpRequest's abort, all of which I've migrated already.

There's also according to the spec one that fires on Window targets when the document load is aborted (https://html.spec.whatwg.org/multipage/browsing-the-web.html#aborting-a-document-load). However it seems as if no browsers support this event properly (whatwg/html#3525). So I think maybe we should just delete this page. Or I could try migrating it if you think its worth doing.

I'd support just deleting it for now; we can come back to it if a problem is revealed.

Thanks, this is kind of done. This was an error in the original page that I didn't double-check. I couldn't find a reference for this event in the W3C specs so I just deleted that row.

Looks better now, thanks!
OK, I think we can call this done.

Thanks Chris. I made abort redirect to https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/abort_event.


Upgrade to Play 2.6

Update dependencies for Play 2.6 and Scala 2.12
Update config readers to use get[T] instead of type specific readers
Refactor JwtAuthenticatedActions to AtlassianHostUserAction and OptionalAtlassianHostUserAction
Update JwtSignatureCalculator to use ws dependencies from shaded package
Change config key play.crypto.sceret to new key play.http.secret.key
Fix all Tests

This addresses #9


fix: NodeAgent CrashLoopBackOff if enabled

If nodeagent enabled in values.yml, by default it'll crashloop.
Please provide a description for what this PR is for.
And to help us figure out who should review this PR, please
put an X in all the areas that this PR affects.
[ x ] Configuration Infrastructure
[ ] Docs
[ x ] Installation
[ ] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

Hi @rjshrjndrn. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Thanks for your contribution. if you want to add, it should be in https://github.com/istio/istio/blob/master/install/kubernetes/helm/istio/charts/nodeagent/values.yaml. And we have provided this file - https://github.com/istio/istio/blob/master/install/kubernetes/helm/istio/values-istio-sds-auth.yaml for nodeagent case.

My assumption was that ./values.yml is the generic file for istio and nodeagent/values.yml is for that specific chart. If we don't convolute that chart with istio specific values, which the above values are, that'll be good.
And if we have to have a seperate file for the nodeagent, I think removing the nodeagent section from values.yml makes more sense, as I see issues regarding nodeagent restarts.

My assumption was that ./values.yml is the generic file for istio and nodeagent/values.yml is for that specific chart. If we don't convolute that chart with istio specific values, which the above values are, that'll be good.
And if we have to have a seperate file for the nodeagent, I think removing the nodeagent section from values.yml makes more sense (which will make new people like me to enable that field and fall into the crash loop), as I see issues regarding nodeagent restarts.

That seems like a reasonable pattern, but its not how we have it structured right now. We generally just have the enabled fields in the top level one, and then the specific options in the subchart
See https://github.com/istio/istio/issues/16705 -- I think this basically fixes that issue if we move it to the nodeagent/values.yaml. Please let @JimmyCYJ or @pitlv2109 take a look though
Thanks!

Hi @JimmyCYJ, friendly reminder.

@howardjohn Made changes as per your guidelines. Please have a look

/retest

@rjshrjndrn: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-security-k8s-tests_istio
3771361f28fa0bff7a58a9fe23d543b21c82a983
link
/test integ-security-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/ok-to-test
/retest

@rjshrjndrn: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-security-k8s-tests_istio
3771361f28fa0bff7a58a9fe23d543b21c82a983
link
/test integ-security-k8s-tests_istio

gencheck_istio
3771361f28fa0bff7a58a9fe23d543b21c82a983
link
/test gencheck_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@rjshrjndrn: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-mixer-k8s-tests_istio
3771361f28fa0bff7a58a9fe23d543b21c82a983
link
/test integ-mixer-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


State-db I/o metrics

This allow collecting state cache requests and report cache hit ratio
@arkpar
During the initial sync hit ratio seems to be close to 100%, by the way :)

I'd rename usage.rs to usage_stats.rs or simply stats.rs


403 fetching Custom UI component from GitHub release

Rancher versions:
rancher/server: v1.6.10
Steps to Reproduce:

Add a custom machine driver
Add a custom UI URL from a GitHub release (e.g., https://github.com/ajmadsen/ui-driver-linode/releases/download/v0.1-alpha/component.js)
Attempt to add a new host

Results:
Receive a UI failure when trying to load the custom UI. The proxy returns a 403 trying to fetch component.js.
As far as I can tell this is because Cattle's GenericWhitelistedProxy explicitly sets a Host header on all proxied requests. When fetching a release from GitHub, the proxy receives a redirect to S3 with a pre-signed URL. When the proxy follows the redirect, it resends the explicitly set Host header (in this case Host: github.com) in the request it sends to S3, it receives a 403 with the SignatureDoesNotMatch error, because the Host header sent with the request does not match what was pre-signed (Host being some S3 address).

While this may be true, it won't work regardless.  Github is not meant to be used as a CDN, and they send Content-Disposition: attachment; filename=component.js and Content-Type: application/octet-stream so the file will be downloaded instead of executed.


can't make quarto_titlepages work following the instructions

I'm trying to run the examples in quarto_titlepages to check I understand how it works -
when I run through the installation process and render on the command line I'm unable to reproduce the examples shown.
Steps to Reproduce
I did the following in a fresh Ubuntu2004 (and tried Ubuntu2204) install.
# running line by line
quarto --version
# > 1.3.450
mamba install -n quarto-test quarto  # create testing env
quarto install tinytex  # install latex: https://quarto.org/docs/output-formats/pdf-engine.html
mamba activate quarto-test
quarto use template nmfs-opensci/quarto_titlepages
# prompt download ? > Y
# prompt give dir ? > nmfs-opensci/quarto_titlepages
cd nmfs-opensci/quarto_titlepages
quarto render example_1.qmd --to pdf

# >
(quarto-tests) jovyan@PORT4028:~/nmfs-opensci/quarto_titlepages$ quarto render example_1.qmd --to pdf
pandoc
  to: latex
  output-file: example_1.tex
  standalone: true
  pdf-engine: xelatex
  variables:
    graphics: true
    tables: true
  default-image-extension: pdf

metadata
  documentclass: scrartcl
  classoption:
    - DIV=11
    - numbers=noendperiod
  papersize: letter
  header-includes:
    - '\KOMAoption{captions}{tableheading}'
  block-headings: true
  title: A Sample Title - The SocioEconomic Aspects of Stock Assessments
  subtitle: with non-English diacritics in the author names. See documentation.
  author:
    - name: Jane Doe
      affiliations:
        - name: Minnesota Department of Natural Resources
          address: '500 Lafayette Road Saint Paul, MN 55155'
        - name: University of Minnesota
          department: Department of Mathematics
    - name: Eva Nováková
      affiliations:
        - name: Czech University of Life Sciences
          address: 'Družstevní 666, Vikýřovice, Czechia'
    - name: Matti Meikäläinen
      email<EMAIL_ADDRESS>      affiliations:
        - name: University of Kemijärvi
          department: Department of Biological and Environmental Science
          address: 'Kylmäniementie 79, 98120, KEMIJÄRVI, Finland'
    - name: Ashok Kumar
      affiliations:
        - name: University of Minnesota
          department: Department of Mathematics
        - name: HØnefoss Institute
          address: 'R Tradição 35, Portugal 2950-726'
  bibliography:
    - references.bib

WARNING: Unable to resolve crossref @eq-eq2
running xelatex - 1
  This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex)
   restricted \write18 enabled.
  entering extended mode

running xelatex - 2
  This is XeTeX, Version 3.141592653-2.6-0.999995 (TeX Live 2023) (preloaded format=xelatex)
   restricted \write18 enabled.
  entering extended mode

Output created: example_1.pdf

(quarto-tests) jovyan@PORT4028:~/nmfs-opensci/quarto_titlepages$ quarto list tools
[✓] Inspecting tools

Tool         Status            Installed     Latest
chromium     Not installed     ---           869685
tinytex      Up to date        v2023.09      v2023.09

Does the bug relate to PDF output?
yes!
what it should look like:

what it looked like for me! quarto render example_1.qmd --to pdf

I am running into the same issue, running on macOS Ventura 13.5.2 and quarto version 1.3.450.

Hi,
The correct command is
quarto render example_1.qmd --to titlepage-pdf

By using --to pdf, you are instructing Quatro to compile to a plain pdf format and to not use the titlepage-pdf format.
Regards,
Eli

Thank you @eeholmes-uw, it works fine now. Thanks for taking the time to share the simple solution that explains many of my other issues with Quarto compilation.


[HOLD for payment 2023-06-28] [$1000] Settings - Zip/ Pin code validation is case sensitive

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:
Action Performed:

Open the app
Open settings
Open profile
Open personal details
Open Home address
Change country to 'Ascension Island'
Insert same format zip code but in lower case and observe that it throws validation error.

Expected Result:
The Zip/ Pin code should be uppercased on the background without user noticing and then we can run the verification making the case sensitiveness irrelevant.
Actual Result:
Zip/ Pin code validation is case sensitive
Workaround:
Unknown
Platforms:

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

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

Version Number: <IP_ADDRESS>
Reproducible in staging?: yes
Reproducible in production?: yes
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/2777023f-6258-413c-a861-162e20d92cac
https://github.com/Expensify/App/assets/93399543/d1ccce92-f01a-465d-a8bd-77aca8db127d
Expensify/Expensify Issue URL:
Issue reported by: @dhanashree-sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1686066243272029
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01ebaa85cf62804d03
Upwork Job ID:<PHONE_NUMBER>703255552
Last Price Increase: 2023-06-12

It looks like country zip code is case sensitive and would like to tag @Prince-Mendiratta to confirm as you added the feature https://github.com/Expensify/App/issues/14958

@Prince-Mendiratta Can you please confirm if the case sensitiveness has been intentional and any reason we should not make this case insensitive?

Hmm I am not sure, I know in UK for example sometimes the websites complain if I dont use uppercase so maybe a bit more digging into this should be done. Or we can just simply enfore the uppercase and let users know. Or map it to uppercase as they write it in

I am inclined to overwriting user to uppercase in this case.

@mountiny I thought we didn't prefer modifying user input as we typed? Example: we don't accept uppercase letters in contact methods, but instead of overwriting user input as they type, we lowercase the text before sending it to the API

Updated the issue op

@dukenv0307 proposal here https://github.com/Expensify/App/issues/20569#issuecomment-1586308230 looks good since the expectation is to silently uppercase the zip code during validation and sending to API.
🎀👀🎀
C+ Reviewed
cc: @mountiny

Gentle ping on this @johncschuster

Sorry everyone, @johncschuster is out for the week. I just sent offers through Upwork to @dhanashree-sawant, @dukenv0307, and @abdulrahuman5196.

@sakluger Thank you. Accepted the job invite.

@dukenv0307 @abdulrahuman5196 and @dhanashree-sawant has this all been paid out?
If yes we can close this

@mountiny no. I have accepted the contract. But still waiting on payment release.

Independence day, probably gonna be paid tomorrow, sorry for that

No problem. Thought so. Many people would be off this time of the year. 😅

Payment has been issued! Thanks for your patience, everyone!


Difficulties setting up build environment

Hello,
I've tried to build this - it looks like a useful tool - but I've had some trouble. On Ubuntu 16.04 despite a successful apt-get install llvm-3.7-dev clang-3.7 libclang-3.7-dev I'm not able to make:-
mtandy@mtandy-desktop:~/Documents/elfs-clang-plugins$ make
g++  `llvm-config-64 --cxxflags` -O2 -g "enums_conversion/enums_conversion.cpp" -o "enums_conversion.o" -c -Wall -Wextra -Wno-unused -Wno-strict-aliasing -Werror
/bin/sh: 1: llvm-config-64: not found
enums_conversion/enums_conversion.cpp:3:51: fatal error: clang/Frontend/FrontendPluginRegistry.h: No such file or directory
compilation terminated.
Makefile:31: recipe for target 'enums_conversion.o' failed
make: *** [enums_conversion.o] Error 1

I can change the makefile to add -I /usr/lib/llvm-3.7/include/ to the g++ command - but that gives me hundreds of errors.
Presumably my environment is misconfigured. Do you think you could provide a travis buildfile or something similar, showing me how it's done?

I've successfully got a Travis build working - https://travis-ci.org/michaeltandy/elfs-clang-plugins/builds/305555868 - albeit with some warnings. I can open a merge request if you're interested?


Flutter issue

Oops; flutter has exited unexpectedly: "ProcessException: Failed to find "where" in the search path.
Command: where ".
A crash report has been written to C:\Windows\System32\flutter_07.log.
Getting this error after using flutter --version command in cmd

@ritikaahuja123 please check you environment variable path for flutter

hit windows key. search environment variables. add path where you've downloaded flutter.If its default then it must be in C drive

copy this and add this inside user and system variables inside path.

Hi @ritikaahuja123
If the problem persists, please provide your flutter_07.log. from the path in your error and flutter doctor -v output

Without additional information, we are unfortunately not sure how to resolve this issue.
We are therefore reluctantly going to close this bug for now.
Please don't hesitate to comment on the bug if you have any more information for us; we will reopen it right away!
Thanks for your contribution.
Could everyone who still has this problem please file a new issue with the exact description of what happens, logs, and the output of flutter doctor -v.
All system setups can be slightly different, so it's always better to open new issues and reference related issues.


ARROW-10924: [C++] Validate temporal data in ValidateArrayFull

Validate that temporal data in arrays meet the restrictions of their data type specifications.

@JabariBooker Thanks for working on this! I left some minor comments.
Also, we are missing validation for the following temporal types: Date32Type and TimestampType.

@edponce There are no limits on Date32Type and TimestampType AFAICT.

@pitrou So there is a limit for Date64Type but not for Date32Type? I now understand that TimestampType does not has limits.

Date32Type's unit is days and so there's nothing to check, but Date64Type's unit is milliseconds, hence it doesn't have a limit per se, but it must be a multiple of 86400000 (=1 day in milliseconds).

FYI, that test failure in GroupBy.MinMaxTypes is here: https://github.com/apache/arrow/blob/d88e23273fd4eb7945a5fb94cfdb6315f412ea83/cpp/src/arrow/compute/kernels/hash_aggregate_test.cc#L1614
The test uses one set of data to go through several data types, so you could just update the hardcoded data there too.

@lidavidm @edponce @pitrou There are still failing integration tests (all are also failing due to invalid values for date64). The data involved in these tests seem to be generated by some mechanism I'm unaware of.

@JabariBooker Integration data is generated in Python by Archery here: https://github.com/apache/arrow/blob/master/dev/archery/archery/integration/datagen.py#L196
You can find more info about the JSON integration format here, and how to run the integration tests locally, here: https://arrow.apache.org/docs/format/Integration.html


Add a utility function to copy a responses and modify its headers

Forking this feature request from #2023: copying a response and modifying its headers is probably a fairly common thing to want to do, but actually implementing it in a performant and cross-browser way is non-trivial.
I think we could provide a utility function to do this in workbox-core. Sample usage might look something like this:
const newResponse = await copyResponseAndModifyHeaders(oldResponse, (headers) => {
  // Any modifications to the `headers` object get copied to the new
  headers.append('X-Cache-Hit', '1');
})

In this example, the X-Cache-Hit header is added so analytics on the main page can know that this response came from the cache and not the network.
I don't 100% understand they history behind when a similar copy technique was used for cleanRedirect(), but #2023 shows that doing it right, and cross-browser is tricker than it might initially seem.

I never had this need yet, but it looks useful.
What about this:
const newResponse = await copyResponseAndModifyBody(oldResponse, (body) => {
  // Any modifications to the `headers` object get copied to the new
  body.replace('src="https://my-domain.com', 'src="https://images-cdn.com');
})

Just a probably dumb example, but is the idea useful?

Hmmm, in my suggestion the copied response would share the body stream of the original response, so modifying it wouldn't be possible with a replace() function like you have there.
I'm not sure if there'd be an easy way to make body modification work in both the streaming and non-streaming case, or if it's worth doing that considering Edge is moving to Chromium in the near future, and then all SW supporting browsers should also support streams (I believe).

You're right, I didn't think about streams, I'm not yet used to it.

Closed via #2144


Popup when someone marks something

Product and Version [VS/VSCode]: Most recent
OS Version[macOS/Windows]: macOS Sonoma 14.4
Live Share Extension Version: v1.0.5905
Steps to Reproduce / Scenario:

When my friend in Live Share marks sth there is a popup like u can see below in the screenshot. I really don't know where it comes from. It's extremely disturbing cause it is a text input and it takes the focus. So it always takes me there.

Please attach logs to this issue:
logs.zip
Screenshots

That popup does not appear to be coming from Live Share.

Like the guy mentioned in #5032 I am also working on a vue/ TypeScript project.
Relevant Extensions for this project are probably the following:
JavaScript and TypeScript Nightly
npm inetellisense
Vue Official
Vue Snippets - hollowtree
AutoImport - steoates
Auto Rename Tag - Jun Han
Error Lens - Alexander
htmltagwrap - Brad Gashler
Maybe you can figure something out. Im going to start to disable all extensions, so i might be able to find the one relating this issue.

Our team is also experiencing this on a vue/TypeScript project, though it doesn't seem to be limited to when both people are typing. It is only occurring on the host's IDE, and only while in Read/Write mode, not in ReadOnly mode. It is making LiveShare unworkable.
Extensions:
Vue Official
Tailwind CSS Intellisense
ESLint
Prettier
Prettier ESLint
PostCSS Language Support
CSS Variable Autocomplete

The extension in common is "Vue Official" extension.
Looking at the changelog, a new 2.x.x version of the extension was released on 2024-03-02 (earlier this week).
Since then, there have been many issues opened against the extension in the last few days.
This comment on one of the issues provides steps to downgrade to a 1.x.x version of the extension.
Hopefully that resolves your issue but doesn't seem to be caused by Live Share.

When the user selects HTMl code in the SFC template and executes the Extract into new dumb component command, the Vue extension client will intercept the refactor.move.newFile.dumb command and pop up a popup naming the new component. This is behavior that exists since v1.x.
Does one client executing Extract into new dumb component cause all connections to execute the middleware code? (Please let me know if I can help with this issue.)
https://github.com/search?q=repo%3Avuejs%2Flanguage-tools refactor.move.newFile.dumb&type=code

@johnsoncodehk it seems that something else is triggering this behaviour. Here is my reproduction:

I open in VS Code a random vue file and move my cursor somewhere into script setup where I could write code in TS.
I start Live Share (Read/Write) and open the link in the browser.
I log in as myself using github there.
Session is joined and in the browser I see that only 2 extensions were installed Prettier and Vue - Official.
I come back to my host instance of VS Code, type a character and within a second the popup appears.

I do not need to do anything else like selecting any code or executing a command so there is something else that is triggering this refactor. In non-vue file the IntelliSense popup appears and stays, while in vue files it is quickly closed and the popup appears.

Reverting the Vue - Official extension to v1.8.27 resolved the issue for our team.

@johnsoncodehk it seems that something else is triggering this behaviour. Here is my reproduction:

I open in VS Code a random vue file and move my cursor somewhere into script setup where I could write code in TS.
I start Live Share (Read/Write) and open the link in the browser.
I log in as myself using github there.
Session is joined and in the browser I see that only 2 extensions were installed Prettier and Vue - Official.
I come back to my host instance of VS Code, type a character and within a second the popup appears.

Thank you for your explanation. As far as I know, step 5 is incorrect. It should be triggered when selecting a piece of  code in the <template> on the browser side.
I have thought of two ways to solve this problem.
On the VSCode/Live Share side: Currently, we are eagerly resolving the code action regardless of whether the client side has selected a code action. Ideally, we should only execute the resolve code action when the user clicks on a code action.
On the Vue extension side: I hope to determine if the Live Share server is running by using a method similar to await vscode.commands.executeCommand('getContext', 'liveshare:state') === 'Shared' (currently not possible, see https://github.com/microsoft/vscode/issues/10471). If it is, then skip the input box.

@johnsoncodehk I see that none of those options is possible in near future so I appreciate that you've added vue.codeActions.askNewComponentName setting to turn off the feature. I've just check that after disabling the option I no longer get the popup with version 2.0.11 so thank you for this workaround.
While I see much bigger value in pair/mob programming than in easy component extraction I hope that at some point VSCode/Live Share team will provide a solution that is not limiting capabilities for Vue ecosystem and will let you implement the proper solution for this issue.
I wish you all the best :)


MS3Record.record and const

This is rather a question than an issue.
The MS3Record struct has the record attribute to store the raw miniSEED record buffer the struct was created from (if available). Is there a reason why the attribute is not declared as const?, i.e.
struct MS3Record {
  const char* record;
  ...
};

Do you see a scenario, where it might be useful to modify the raw miniSEED record buffer?
If declaring the attribute as const, as a consequence, the function signature of functions such as e.g. msr3_parse() could be changed to
int msr3_parse(const char* record, ...)

I hope, I don't miss anything.

Probably just historical oversight.  For the particular case of MS3Record.record, the data has already been parsed and the caller can do whatever it wishes with that data without effecting library operations.  But we wouldn't want invite the caller to modify such an internal buffer and risk the caller writing beyond the bounds of the record.
I've created #101 that adds the const qualifier to multiple declarations of a record pointer.  I'd appreciate your review if you have time.

Actually my reasoning was counterintuitive. When calling functions such as msr3_parse(const char* record, ...) clients using the function can be sure that the buffer record is pointing to won't be modified. With a non-const pointer this isn't the case.


Golden Enemies

Hello, i'm sorry to bother you but i was simply wondering if the golden variants of the enemies would show up here, i have been searching for them and i cannot find them, are they simply not in the compendium in the main game? my apologies if so

as well as the silver-maned lynel, apologies for being annoying

nevermind on the silver lynel, it just had a different name than i expected

Thanks for this issue. The golden enemies are part of the DLC pack. Right now, they are not in the compendium because they override IDs of other entries. I plan on having DLC entries fully supported soon, and will mention this issue when I do.
Again, thanks for bringing this to my attention.

You're Welcome! :)

Hello @AliciaSpinnet. The DLC images have been added in https://github.com/gadhagod/Hyrule-Compendium-API/commit/ad69e0cf6d6c1e4584e385f7b696af4bcb383873, but only the ones in the Champion's Ballad DLC pack. I'll add the Trials of the Sword entries to the project's roadmap, and will hopefully have this done soon.

I've added functionality to the API to retrieve Master Mode entries. Since these entries have affect the IDs of other entries, there is a separate endpoint for them.
Retrieve all master mode entries: https://botw-compendium.herokuapp.com/api/v2/master_mode.
Retrieve a single master mode entry: https://botw-compendium.herokuapp.com/api/v2/master_mode/entry/<name or ID>
These endpoints are still unstable, as tests are not fully developed yet. I have not documented these endpoints yet.


selectionAction is not working

when i am selected item is not working.when taped long press then its working what is the problem here?.

Hello @ramohanreddy 👋
Could you be more precise on what you are trying to do. How should it behave and what actually behaves? Seeing some code would help too!
Thanks!

experienced this too.
a single click on an item in the dropdown's table doesnt trigger select, needed 2-3seconds press
created a setup function like this
private func setupDropdown(_ onLabel: UILabel) {         dropdown.anchorView = onLabel         dropdown.dataSource = ["sample1", "sample2", "sample3"]         dropdown.selectionAction = { [unowned self] (index: Int, item: String) in             print("Selected item: \(item) at index: \(index)")             onLabel.text = item         }     }

Experience the same issue. After spending 2-3 hours found the issue is because of scrollView.
You need to check with the scroll view height and dropdown view.


How to add two different NlogViewers to same application, having two different targets

Hi, great control by the way! I'm new to it, but through the examples I cannot relate targeting two different NlogViewers. I guess it would be something like:
  <extensions>
    <add assembly="NlogViewer" />
  </extensions>

  <targets>
    <target xsi:type="NlogViewer" name="logCtrl1" />
    <target xsi:type="NlogViewer" name="logCtrl2" />
  </targets>

  <rules>
    <logger name="*" minlevel="Debug" writeTo="logCtrl1" />
    <logger name="*" minlevel="Trace" writeTo="logCtrl2" />
  </rules>

but I don't know how to configure the WPF control itself to be the target of "logCtrl1" and "logCtrl2"

bump anyone?

same problem here

Here you are: https://github.com/dojo90/NLogViewer#multi-targeting

I made simple lean clone of this project and added multi-targeting: https://github.com/maxima120/NLogWPFViewer


cli highlighter feature

mlem.ai has a cli Prism language that includes dvc, cml, and mlem commands (along with regular shell stuff).
How can we get it ported here @iterative/websites ?
Originally posted by @jorgeorpinel in https://github.com/iterative/dvc.org/pull/3577#discussion_r881118100
Also,

[ ] Update existing dvc blocks? At least those that use other commands, from Linux tools to CML.

p.s. and for that matter is there some sort of process to propagate engine updates across its implementations? Would be nice it we had an actual upstream/downstream forking structure setup I think.

The docs-engine port is ready to get merged https://github.com/iterative/dvc.org/pull/3396. So, it will be there once merged.

Reopening for the check boz about updating dvc -> cli


Skip eviction if there is no possible target

What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #541 #542
Special notes for your reviewer:
Before an eviciton is attempted, the machine-controller will now check if there is a possible target and if no, omit it

/lgtm
/approve

/retest


Event Hub Support & Sample

@vnicers @vinceve you can try the event hub support for Spring Cloud in repository Spring Cloud Azure.

@vnicers We will close this issue for now as you can find the event hub support in Spring Cloud Azure repo.


Error while running "npm run reset"

When I run npm run reset I get below error
<EMAIL_ADDRESS>reset
bin/reset
'bin' is not recognized as an internal or external command,
operable program or batch file.
I'm running this on windows 11 cmd prompt
I tried changing bin/reset to bin\reset but error remains same

@makaroni4 I was able to fix the issue
updated package.json with below details
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build && node ./bin/create_db_pages",
"predeploy": "npm run build",
"deploy": "gh-pages -d build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"reset": "node ./bin/reset",
"import": "node ./bin/import"
}

Awesome, thank you for posting the solution @dilkushpatel 🙌


feat: support nested custom types in function arguments

This PR definitely closes #53 by supporting Struct inside Enum and Enum
inside Struct types as function arguments in smart contracts, whereas it was
only supported as function outputs since #213.

I'm a bit confused -- what is this PR introducing? The title says it's adding support to nested custom types as inputs, but it's only adding tests (that are passing) to show that it actually works. Which is good and all, I'm just asking because the title itself and the content of the PR doesn't seem to match 😅.

Hahs you're absolutely right, it turns out that supporting Enum made the nested types work immediately. So it is just a test PR


Improve language in Section <IP_ADDRESS> Para. 153

Test 1: “For that credential/login method…” probably should say “For all combinations of supported credentials and login methods...”

Language in test updated in line with the suggestion. Fixed in editorial-SD-110123


Fatal error when another plugin is installed that uses Twig and Timber version is >= 1.1.12

Expected behavior
A functioning website without a fatal error
Actual behavior
Displays a fatal error: "The "Twig_Extension_Core" extension is not enabled."
See stack trace at: https://gist.github.com/blocher/71ec2e1322f88e30780b8e44b77d6063
Steps to reproduce behavior

Install and activate Timber >= version 1.1.12
Install and activate another plugin that uses Twig, such as All in One Event Calendar (https://wordpress.org/plugins/all-in-one-event-calendar/)
Activate theme that uses Timber
Load public website in browser

See stack trace at: https://gist.github.com/blocher/71ec2e1322f88e30780b8e44b77d6063
What version of WordPress, PHP and Timber are you using?
Wordpress 4.7, PHP 7.0.14, Timber 1.1.12 or 1.2 (no issue in earlier versions)
How did you install Timber? (for example, from GitHub, Composer/Packagist, WP.org?)
Upgraded to newest version via plugin updater in WordPress dashboard
Also tried cloning from GitHub and manually unzipping file from WP.org

The issue comes from the two plugins both including Twig library, but a different version of it. The newest version of Twig deprecated some code and provides a new 2.0 compatible way instead. This doesn't work in the older Twig version, thus causing the error.
There's really nothing you can do except for asking plugin developer to update his twig dependency to the latest version. Or you can make sure that the older version doesn't get loaded, either by updating the vendor library by yourself or removing it manually from the plugin.

@mahagr @blocher good news! Timber now uses Twig 2.0! If I understand @mahagr correctly this should resolve the issue; but please confirm with the latest master if you can.

Don't use Twig 2.0, it's for PHP7 only. Use the latest 1.1 version which is mostly compatible with 2.0.
The issue here is that the another/conflicting plugin is using an old version of Twig and should be updated. Timber was just fine. :)

Thank you for the help!  Upgrading Twig on the other plugin to the latest 1.x does the trick.  Timber does in fact work great.


Only node 18 runtime is supported currently

I am using the developer modules path...
OS: Windows
Installed Node Version: v18.20.4
Companion Version: v3.4.2
I get the following error in the console of companion when trying to load my module:
Instance/ModuleHost: Only node18 runtime is supported currently: "-3KZGW97MKVYgvbRbZyST"

@Xentox-Phil  I'm assuming you're trying to use node22, as the template was updated to support it.  node22 support has been added to the v3.5 betas for future release.

Yes just found the commit b4f5a65 were you have upgraded it just was confused...
I just switched the runtime type back to node18 and everything works like a charm...
thank you for your quick response absolutely awesome! ♥


squid:S1172 Unused method parameters should be removed

This pull request is focused on resolving occurrences of Sonar rule squid:S1172 Unused method parameters should be removed.
You can find more information about the issue here:
https://dev.eclipse.org/sonar/coding_rules#q=squid%3AS1172
Please let me know if you have any questions.
George Kankava

The methods in the RequiresAuthenticationHandler must be kept "as is" as extension points which can be override with a different logic which requires additionnal parameters "not currently used".

Closing this PR as I think Jérôme and I agree that these changes are not desired.

Maybe the cleaning in CallbackDeployingPac4jAuthHandler is worth applying later on.


Regression: cmath.rect doesn't work in numba 0.21.0

The following MWE works in numba 0.20.0, but not in 0.21.0:
import numba as nb
import cmath

@nb.njit
def dumb_wrapper(r, phi):
    return cmath.rect(r, phi)

print(dumb_wrapper(1.0, 2.0))

I've only tried a few other functions in cmath, but haven't found any other problems.  When this is run, a big traceback results:
Traceback (most recent call last):
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/llvmlite/ir/instructions.py", line 471, in __init__
    typ = typ.elements[i]
AttributeError: 'DoubleType' object has no attribute 'elements'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 196, in lower_block
    self.lower_inst(inst)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 238, in lower_inst
    val = self.lower_assign(ty, inst)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 395, in lower_assign
    return self.lower_expr(ty, value)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 756, in lower_expr
    self.incref(resty, val)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 808, in incref
    self.context.nrt_incref(self.builder, typ, val)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/targets/base.py", line 1111, in nrt_incref
    self._call_nrt_incref_decref(builder, typ, typ, value, "NRT_incref")
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/targets/base.py", line 1090, in _call_nrt_incref_decref
    members = data_model.traverse(builder, value)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/datamodel/models.py", line 565, in traverse
    for k in self._fields]
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/datamodel/models.py", line 565, in <listcomp>
    for k in self._fields]
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/datamodel/models.py", line 513, in get
    name="extracted." + self._fields[pos])
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/llvmlite/ir/builder.py", line 538, in extract_value
    instr = instructions.ExtractValue(self.block, agg, idx, name=name)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/llvmlite/ir/instructions.py", line 474, in __init__
    % (list(indices), agg.type))
TypeError: Can't index at [0] in double

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "test_numba21.py", line 8, in <module>
    print(dumb_wrapper(1.0, 2.0))
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/dispatcher.py", line 171, in _compile_for_args
    return self.compile(sig)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/dispatcher.py", line 348, in compile
    flags=flags, locals=self.locals)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 637, in compile_extra
    return pipeline.compile_extra(func)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 358, in compile_extra
    return self.compile_bytecode(bc, func_attr=self.func_attr)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 367, in compile_bytecode
    return self._compile_bytecode()
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 624, in _compile_bytecode
    return pm.run(self.status)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 250, in run
    raise patched_exception
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 242, in run
    res = stage()
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 580, in stage_nopython_backend
    return self._backend(lowerfn, objectmode=False)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 533, in _backend
    lowered = lowerfn()
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 524, in backend_nopython_mode
    self.flags)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 766, in native_lowering_stage
    lower.lower()
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 123, in lower
    self.lower_normal_function(self.fndesc)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 158, in lower_normal_function
    entry_block_tail = self.lower_function_body()
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 183, in lower_function_body
    self.lower_block(block)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 196, in lower_block
    self.lower_inst(inst)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 238, in lower_inst
    val = self.lower_assign(ty, inst)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 395, in lower_assign
    return self.lower_expr(ty, value)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 609, in lower_expr
    res = self.lower_call(resty, expr)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 575, in lower_call
    res = impl(self.builder, argvals)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/targets/base.py", line 1127, in __call__
    return self._imp(self._context, builder, self._sig, args)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/targets/cmathimpl.py", line 100, in rect_impl
    args + [phi_is_finite])
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/targets/base.py", line 867, in compile_internal
    ty = self.compile_subroutine(builder, impl, sig, locals)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/targets/base.py", line 857, in compile_subroutine
    locals=locals)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/targets/base.py", line 837, in compile_only_no_cache
    locals=locals)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 654, in compile_internal
    return pipeline.compile_extra(func)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 358, in compile_extra
    return self.compile_bytecode(bc, func_attr=self.func_attr)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 367, in compile_bytecode
    return self._compile_bytecode()
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 624, in _compile_bytecode
    return pm.run(self.status)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 250, in run
    raise patched_exception
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 242, in run
    res = stage()
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 580, in stage_nopython_backend
    return self._backend(lowerfn, objectmode=False)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 533, in _backend
    lowered = lowerfn()
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 524, in backend_nopython_mode
    self.flags)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/compiler.py", line 766, in native_lowering_stage
    lower.lower()
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 123, in lower
    self.lower_normal_function(self.fndesc)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 158, in lower_normal_function
    entry_block_tail = self.lower_function_body()
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 183, in lower_function_body
    self.lower_block(block)
  File "/home/me/.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/lowering.py", line 201, in lower_block
    raise LoweringError(msg, inst.loc)
numba.errors.LoweringError: Failed at nopython (nopython mode backend)
Failed at nopython (nopython mode backend)
Internal error:
TypeError: Can't index at [0] in double
File "../../.continuum/anaconda/envs/numba21/lib/python3.4/site-packages/numba/targets/cmathimpl.py", line 80

I'm on OS X 10.10.5, using anaconda with python 3.4, though the same seems to happen on Travis-CI (ubuntu?), using python 2.7 and python 3.4.

Thanks for the report. I've submitted a fix.

Awesome.  That change fixes it for me.  Thanks!


🍒 Cherry pick PR #18941 to staging 🍒

🍒 Cherry pick https://github.com/Expensify/App/pull/18941 to staging 🍒

🚀 Cherry-picked to staging by https://github.com/OSBotify in version: 1.3.14-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by https://github.com/yuwenmemon in version: 1.3.14-14 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/AndrewGable in version: 1.3.28-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Consider supporting other languages for plugin development?

I love using the micro editor, writing code in it feels like breathing fresh air.
At the same time, I also enjoy customizing my own plugins, customizing my own keybindings, and writing code in my own preferred way.
However, plugins can only be developed using Lua, and Lua has some shortcomings such as table holes, starting arrays with 1, etc.
Could you consider supporting other languages for plugin development? As far as I know, Yaegi seems to allow Go code to be dynamically loaded at runtime with a performance decrease of three times, which is still within my acceptable range. There is GPython for Python on Go. Have the developers considered supporting other languages for plugin development?

There are some considerable upsides to only supporting a single language for plugins:

Smaller binary size
More cohesive plugin ecosystem (plugins written in the same language can easily share code with each other)
Less code to maintain
Easier to change the plugin API

Yaegi looks interesting. It might have been a good choice for a plugin system if micro was written today (although it would bloat the binary size more than Lua does).


Fix a bug of unintentionally using same process indices

I noticed some of batch training examples have a bug that unintentionally uses same process indices (thus same random seeds!) across env processes. This PR fixes the bug.
You can see the current and new behaviors by running the code below.
import functools
import chainerrl
import gym

num_envs = 4

def make_env(process_idx, test):
    print(process_idx, test)
    return gym.make('Pendulum-v0')

def make_batch_env_old(test):
    return chainerrl.envs.MultiprocessVectorEnv(
        [(lambda: make_env(idx, test))
         for idx, env in enumerate(range(num_envs))])

def make_batch_env_new(test):
    return chainerrl.envs.MultiprocessVectorEnv(
        [functools.partial(make_env, idx, test)
         for idx, env in enumerate(range(num_envs))])

print('make_batch_env_old')
make_batch_env_old(test=False)
make_batch_env_old(test=True)

print('make_batch_env_new')
make_batch_env_new(test=False)
make_batch_env_new(test=True)

This code will outputs:
make_batch_env_old
3 False
3 False
3 False
3 False
3 True
3 True
3 True
3 True
make_batch_env_new
0 False
1 False
2 False
3 False
0 True
1 True
2 True
3 True

Even when same random seeds are used in env processes, actions sent by the agent are usually different due to  the stochasticity of policy or eplorer, so this may not result in noticeable difference in learning results, but this is definitely a bug that needs to be fixed.

Thanks for the review. I fixed tests/wrappers_tests/test_vector_frame_stack.py as well.


Profile/qualification tool error handling improvements and support spark < 3.1.1

I found a few issues with bad event logs, added more error handling and tests.
I also added support for running with Spark versions < 3.1.1, this was due to the ResourceProfile event only in 3.1.
Renamed Rank to be Score based on feedback.

build

build

build

build

build

missed test files on upmerge

build


Render links for XLSForm warning URLs

A few XLSForm warnings end with "Learn more: [some URL]". Currently, we don't linkify that URL: it is rendered as text. However, it would be helpful if we rendered a link instead.

Well that's cool! I see from https://github.com/getodk/central-frontend/pull/685/files#diff-297d623ca753d07d496717ce4e92f55d4a3f4a6398a40b2be246c3b53e858bdcR257 that this is specifically looking for a "Learn more:" prefix which is not necessarily consistently used in pyxform. We should probably make this a documented pattern if we're going to rely on it, right?

I want to make all links consistent in warning box:

I searched for xlsform.org in pyxform repository (https://github.com/XLSForm/pyxform/search?q=xlsform.org) and found that all the help links have "Learn more" prefix, is there any other patter?

is there any other patter

No. But this one is not documented. https://github.com/XLSForm/pyxform/issues/634

Tested with Success!

Tested with Success!


Patch 2

Switch theme to save eyes.

@8HoLoN this makes it dark for everyone - which is not ideal. Could you please add either OS theme detection, or a simple toggle (with default to white theme)?

OK I did a switch feature with default to bright.

OK, done.

@8HoLoN looks great now! could you please resolve package.json conflict? I'll merge it as soon as you do :)

I've cherry-picked the changes into dev branch with some minor tweaks. Will deploy soon.
Thanks for your work!

ahah thank, I was also merge it!