CODEOWNERS: stm32: Update on active members

In early Zephyr days, STM32 code base greatly benefited from the care
of a handful of people.
These days are gone and so did these few people that haven't been
contributing for at least a year now.
CODEOWNERS file is updated to reflect current status of contribution,
for the areas where the is an active contributor.
Let them be thank for these initial contributions.
Signed-off-by: Erwan Gouriou<EMAIL_ADDRESS>

Well that's OK to clean up a bit the code-owners' file; just wondering if @idlethread or @superna9999 could confirm being OK with not getting assigned to reviews for these code areas.

Well that's OK to clean up a bit the code-owners' file; just wondering if @idlethread or @superna9999 could confirm being OK with not getting assigned to reviews for these code areas.

@ioannisg this is right, I haven't though adding them as reviewers, but this works as well.
@idlethread, @superna9999, @ldts you have your say in this.

hi @erwango, yes it would be ok to remove me from the maintainers list. havent contributed much for a long time and my zephyr development boards are in a box somewhere. thanks for reaching out though!

If you don't mind, I'd prefer not to be removed since I still use those
boards. It is ok to assign reviews for these code areas.
On Wed, Sep 2, 2020 at 1:59 PM Erwan Gouriou<EMAIL_ADDRESS>wrote:

Well that's OK to clean up a bit the code-owners' file; just wondering if
@idlethread https://github.com/idlethread or @superna9999
https://github.com/superna9999 could confirm being OK with not getting
assigned to reviews for these code areas.
@ioannisg https://github.com/ioannisg this is right, I haven't though
adding them as reviewers, but this works as well.
@idlethread https://github.com/idlethread, @superna9999
https://github.com/superna9999, @ldts https://github.com/ldts you
have your say in this.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/zephyrproject-rtos/zephyr/pull/27930#issuecomment-685442110,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADDVTPL3O524NEZF3CIAGTSDX645ANCNFSM4QRWN3NQ
.

--

Amit Kucheria

If you don't mind, I'd prefer not to be removed since I still use those
boards. It is ok to assign reviews for these code areas.

@idlethread, I would truly appreciate help from active reviewers on STM32 components, specially on drivers.
I was trying to check the reviews that had been assigned to you and I just realized that it is not possible to add you as reviewer. I guess this is because you're not member of the project (or at least contributor) so that github can request reviews based on this CODEOWNER file. This is explaining why you haven't been requested any reviews.
Now, looking to the areas where you appear as codeowner a lot of changes and refactoring has been made since your stm32 contributions 4 years back in order to factorize most of cods between STM32 series and ST based boards. Let's check piece by piece:
/boards/arm/nucleo_f401re/: I don't have issue to keep you here, but the nucleo boards are usually modified in batch changes and there are not much evolution that happen in one single board.
soc/arm/st_stm32/stm32f4/: On this area, changes were made to factorize and give coherency between each series. The maintenance work usually happen at the upper level. Ideally this line should be purely removed.
/drivers/pinmux/stm32/: Once again, I don't want to put you at odds but on this driver, lot of changes have been made to the initial contribution (pinmux driver rework, pinmux files moved to boards/, ..) and more changes coming specially with the upcoming transition to device tree pin configuration (https://github.com/zephyrproject-rtos/zephyr/pull/25996). So we can keep you here, but I'm not sure this follows the idea of codeownership.
Amit, I hope you understand my motivation, which is not to exclude you, but rather to reflect the current reality of the code.
And once again, we're missing active codeowners and reviewers on lot of stm32 peripherals if you happen to have time to spend on zephyr. I would be pleased to have some of your contributions in these areas.
@ioannisg please correct me if you think I'm diverting the concept of codeowner.

If you don't mind, I'd prefer not to be removed since I still use those
boards. It is ok to assign reviews for these code areas.

@idlethread, I would truly appreciate help from active reviewers on STM32 components, specially on drivers.
I was trying to check the reviews that had been assigned to you and I just realized that it is not possible to add you as reviewer. I guess this is because you're not member of the project (or at least contributor) so that github can request reviews based on this CODEOWNER file. This is explaining why you haven't been requested any reviews.
Now, looking to the areas where you appear as codeowner a lot of changes and refactoring has been made since your stm32 contributions 4 years back in order to factorize most of cods between STM32 series and ST based boards. Let's check piece by piece:
/boards/arm/nucleo_f401re/: I don't have issue to keep you here, but the nucleo boards are usually modified in batch changes and there are not much evolution that happen in one single board.
soc/arm/st_stm32/stm32f4/: On this area, changes were made to factorize and give coherency between each series. The maintenance work usually happen at the upper level. Ideally this line should be purely removed.
/drivers/pinmux/stm32/: Once again, I don't want to put you at odds but on this driver, lot of changes have been made to the initial contribution (pinmux driver rework, pinmux files moved to boards/, ..) and more changes coming specially with the upcoming transition to device tree pin configuration (#25996). So we can keep you here, but I'm not sure this follows the idea of codeownership.
Amit, I hope you understand my motivation, which is not to exclude you, but rather to reflect the current reality of the code.
And once again, we're missing active codeowners and reviewers on lot of stm32 peripherals if you happen to have time to spend on zephyr. I would be pleased to have some of your contributions in these areas.
@ioannisg please correct me if you think I'm diverting the concept of codeowner.

The CODEOWNERS file is only used for auto-assigning reviewers in pull requests. It does not indicate or imply maintainership. We have MAINTAINERS file for that.
There's nothing wrong really to have folks listed in the CODEOWNERS file; I guess the only motivation to remove people from this file is to keep the number of entries and the granularity limited and reduce noise from having too many people. We should definitely remove people that are not at all active at the project.
"Reflecting the current reality of the code" is desired but not required; that said, if @idlethread insists on seeing value from being auto-assigned in PR reviews, it is no harm to stay in the list :)
But in general, the value of having a cleaner CODEOWNERS file should also be taken into consideration.

The CODEOWNERS file is only used for auto-assigning reviewers in pull requests. It does not indicate or imply maintainership. We have MAINTAINERS file for that.
There's nothing wrong really to have folks listed in the CODEOWNERS file; I guess the only motivation to remove people from this file is to keep the number of entries and the granularity limited and reduce noise from having too many people. We should definitely remove people that are not at all active at the project.
"Reflecting the current reality of the code" is desired but not required; that said, if @idlethread insists on seeing value from being auto-assigned in PR reviews, it is no harm to stay in the list :)
But in general, the value of having a cleaner CODEOWNERS file should also be taken into consideration.

Thanks @ioannisg for this clarification.
Then from what I understand, maybe the sensible move would be to keep the nucleo_f401re line, so that @idlethread could be able to check that no breaking changes are introduced on that board (which involves adding him as contributor of the project to make it effective).
@idlethread would it be ok on your side?

let's do whatever makes sense. Feel free to add me to review requests around this board and soc if that makes sense too and I'll spend some time reviewing.

Txs for feedback!
Re-instantiating @idlethread on nucleo_401re target. @ioannisg would you be able to add him as contributor ?
Also set PR to DNM, giving time to @superna9999 to answer if he's still interested in reviewing the following areas:
/drivers/flash/*stm32*
/drivers/spi/spi_ll_stm32.*

Re-instantiating @idlethread on nucleo_401re target. @ioannisg would you be able to add him as contributor ?

Nope, you need to ask @nashif @MaureenHelm or @carlescufi

@MaureenHelm, @nashif This issue is opened since more than one week now. No feedback from @superna9999. I propose it could be merged.

@MaureenHelm, @nashif This issue is opened since more than one week now. No feedback from @superna9999. I propose it could be merged.

I’m late but indeed I lack time reviewing zephyr PRs for flash lately.

I’m late but indeed I lack time reviewing zephyr PRs for flash lately.

@superna9999 Txs for feedback !


Native OTLP Arrow client SDK

Goals:

CPU/Memory/Network efficient OTEL client SDK.
Multivariate metrics support.

Idea: Use go generate to generate Go code from schema specification.


Populate calendar view with data from tasks

Render data from tasks list with the stated command

Task part of #47

Fixed by #51


Add checkly test

https://gist.github.com/tnolet/d3da0d7db33e6cd278b6b9195e3d78be

This ticket has been moved to BAC-1696


82 mobile nav menu open/close animation

This is the code after removing all the changes i've  made after your class except the animation i've already created for open.

Closing this in favor of #107


[Feature] Optional extra parameter

As we previously discussed, we need better support for actions defined with regular expressions.
With the current structure of robot.e.create, it's not clear how a message with multiple regex criteria, such as list defects discovered by (.+) in sprint ([^ ]+)(?: with filter(?:s)? (.*))?, would fit within the structure. Furthermore, for my use case, adding a whitespace between the action and the extra, does not allow me to make the extra param optional.

@mosheBelostotsky I would like to see some suggestions on how to fix this. We need to take this as high-priority since this is customer feedback.

This one is related https://github.com/eedevops/hubot-enterprise/issues/40

9@rqc @JonathanRosado, here are some suggestions:

Let extra param be totally free regex: then, the user will add also the extra if needed (with spaces)
Set extra_optional flag. the it would be built in such way that it can be matched with or without
Document to the user that he need to create 2 functions. once for with and other for without extra
See hubot-bpm implementing something like this (using robot.respond)

Lets discuss tomorrow...

Hi, Following discussion with @JonathanRosado, here is the proposed solutions for this and #39 issues:

add optional parameter:

always add $ to finish the line, so it will catch ONLY what it need to
the object will look like this: extra: {re: /your regexp/i, optional: true/false}
optional=true the re object will be wrapped with (?: )?$  (@JonathanRosado thanks for the regex!)
Like this: <product> <entity> <verb>(?: <extra.re>)?$
optional=false the re will be prefixed with space: <product> <verb> <entity> <extra.re>$
if no re provided and optional=false then the call will be: <product> <verb> <entity>$
no re and optional=true: [ ]?(.*)$ will be added
pros:

take some heavy lifting from the developer
make simpler to find and filter out similar calls in HE backend

cons:
- more time to developer
- usage may confuse the developer

replace extra with "free" regex

extra will be a regex, free for use to build, and will be added like this: <product> <verb> <entity><re>
pros:

easy do develop
give total control to the developer

cons:

may be confusing (need to remember to add space at the start for example)
may not work good with the final hubot enterprise recieveMiddleware

In both cases we can provide some example regular expressions for users
@eitzhaki @edagan @rqc please review.

@mosheBelostotsky and @JonathanRosado thanks for this, great work! I am inclined to support 2.. I assume this free regex would be a key/value pair also? If so, perhaps we could call it regex_suffix: <re>.

@rqc @JonathanRosado @mosheBelostotsky @eitzhaki
We discussed this internally and decided to go with object-based registrations.
We asked @mosheBelostotsky to implement this as an additional JSON object containing the extra parameters for a Hubot command.
One of the object parameters allows the developer to set the extra as optional or mandatory. @mosheBelostotsky please document usage.
We believe this is an extensible, easy to use solution and it is a stepping-stone for our Help feature.
Thanks!


[RFC] Modify "Archive users not In discord" API endpoint name

Summary
The API that deals with updating the Archived role to true if the user is not in our discord was put under the PATCH /users endpoint with a request body differentiating it from the previous API that exists for the same route.
But, this API is not following the best API naming convention as it is not representing the resources it is modifying correctly.
This RFC aims at finding the API name that follows a better API naming convention.
Description
We have created a new API that will mark all the users Archived that are not in our discord i.e. set the archived=true for users that have in_discord=false.
Initially, the API name was PATCH /users/update-archived. As this is not correct because the verb is defined by the action PATCH so adding update in the endpoint is not correct.
Then, possible route names are proposed.

PATCH /users/archived
PATCH /users/archivedUsers

As in these routes archived is not representing a resource another solution proposed was,
Put the API under PATCH /users by defining the proper body. This is the current implementation.
Here is the API contact:  https://github.com/Real-Dev-Squad/website-api-contracts/tree/main/users#patch-users

@RitikJaiswal75 @apurvkhare @prakashchoudhary07 @sahsisunny @DashDeipayan @heyrandhir Please share your thoughts on this.

APIs Should represent the resource they are accessing I think it should just be
POST as PATCH here is used for a singular update, but the functionality of the API is to update multiple users
I would prefer the API name to be POST on `/users'
any action that it performs can go into the request body
something like
{
    action: "archive"
    on: "in_discord"
}

APIs Should represent the resource they are accessing I think it should just be POST as PATCH here is used for a singular update, but the functionality of the API is to update multiple users
I would prefer the API name to be POST on `/users' any action that it performs can go into the request body something like
{
    action: "archive"
    on: "in_discord"
}

There exists another API on the same endpoint /users. This API marks users unverified. If we go with this approach again we have to update the previously implemented API definition as well.
@prakashchoudhary07 @heyrandhir @apurvkhare What's you thoughts on this?

APIs Should represent the resource they are accessing I think it should just be POST as PATCH here is used for a singular update, but the functionality of the API is to update multiple users
I would prefer the API name to be POST on `/users' any action that it performs can go into the request body something like
{
    action: "archive"
    on: "in_discord"
}

Also, I don't understand why we used POST here. POST is supposed to be used for creating new resources. But, here we are just updating the existing archived property on users' resources. Can you please explain?

There exists another API on the same endpoint /users. This API marks users unverified. If we go with this approach again we have to update the previously implemented API definition as well.

I think we would need to update the previous api then. Based on request body it should perform the unverified action. while as @RitikJaiswal75 suggested based on specific key such as
{
    action: "archive"
    on: "in_discord"
}

you can perform your action and similarly assign some other key for unverified action.

Based on this Discussion:

For archive users in not in discord API

  POST /users

  Request Body

  {
    "action": "archive",
    "on": "in_discord"
  }


Move Initializers from PippoFilter to Application

Method names may need tweaking.

It's ok. For method names I propose this schema:
final void init() { ... };

final void destroy() { ... };

protected void onInit() { ... }

protected void onDestroy() { ... }

With this visibility schema we don't pollute the Application's API. My two cents.

onInit() and onDestroy() work for me.
The visibility decrease will hurt me for the short-run as I am not using PippoFilter.  I'm not sure I can re-align on PippoFilter.  Maybe.  I'll make the adjustments for the on methods but for now can we leave init() and destroy() public?

Refactor pushed.

The visibility decrease will hurt me for the short-run as I am not using PippoFilter.

You are not using PippoFilter? How?


dd: should return 1 on closed stderr but returns 0

GNU dd v9.4.113-c01ee:
$ : | dd 2>&-; echo $?
1

uutils dd:
$ : | ./target/debug/dd 2>&-; echo $?
0

This test case appears in GNU test suite file tests/dd/stderr.sh.

This is super hard to fix if I recall correctly, because Rust reopens stdout and stderr, before we even get to main. This is one of those cases where I would just say that we should document the difference and ignore the test.

Here is an earlier issue where we investigated closed stdin: https://github.com/uutils/coreutils/issues/2873


[$250] [Collect] Workspace - User name and avatar disappears when opening profile immediately after invite

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

Version Number: 1.4.56-2
Reproducible in staging?: Y
Reproducible in production?: Y
Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause-Internal team
Action Performed:
Precondition:

User is admin of Collect workspace.

Go to staging.new.expensify.com.
Go to Profile > Workspaces > Collect workspace.
Go to Members.
Invite a new member that does not have Expensify account.
Immediately after inviting the member, click on the highlighted new user in the list.

Expected Result:
The user name and avatar will not disappear.
Actual Result:
The user name disappears and avatar changes to placeholder avatar.
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos
https://github.com/Expensify/App/assets/115492554/e207297d-5428-4893-909c-3717d93be0a6

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~011d6aa43dad80012f
Upwork Job ID:<PHONE_NUMBER>514075136
Last Price Increase: 2024-04-12

We think that this bug might be related to #wave-control.

Proposal
Please re-state the problem that we are trying to solve in this issue.
The user name and avatar disappear if we view the recently added workspace member. We can easily reproduce this by adding the member while offline, viewing the member detail, and go online.
What is the root cause of that problem?
When we start adding a new member, we generate an optimistic personal detail for that user and clear it when the request is successful.
https://github.com/Expensify/App/blob/b3baa68ac50d1c75e52385b4e60ce581de7baa24/src/libs/actions/Policy.ts#L1130-L1138
https://github.com/Expensify/App/blob/b3baa68ac50d1c75e52385b4e60ce581de7baa24/src/libs/actions/Policy.ts#L1143-L1161
That's why after the request is completed, the name and avatar disappear because we are viewing the optimistic personal detail data that is already gone.
What changes do you think we should make in order to solve the problem?

We can disable it when the personal detail is still an optimistic one until we receive the correct personal detail from the server. This is what we do in several places too, for example:
https://github.com/Expensify/App/blob/b3baa68ac50d1c75e52385b4e60ce581de7baa24/src/components/ReportWelcomeText.tsx#L143-L153
https://github.com/Expensify/App/blob/1c632fe194cd634d6024965f13d3605043f32ed6/src/components/MoneyTemporaryForRefactorRequestConfirmationList.js#L422-L425
First, add isOptimisticPersonalDetail: true to getNewPersonalDetailsOnyxData.
https://github.com/Expensify/App/blob/1c632fe194cd634d6024965f13d3605043f32ed6/src/libs/PersonalDetailsUtils.ts#L125-L138
Then, disable it when isOptimisticPersonalDetail is true.
https://github.com/Expensify/App/blob/1c632fe194cd634d6024965f13d3605043f32ed6/src/pages/workspace/WorkspaceMembersPage.tsx#L362-L367
This will disable the checkbox too, we can customize to not disable the checkbox, but I don't think that's a good idea separating the checkbox disabled state and the row disabled state. Or we can keep it enable, but do nothing when clicked.
optionally we can show not found page on member detail page when it's an optimistic personal detail, but I see we don't do that for profile page, so not sure whether we want to do this or not
What alternative solutions did you explore? (Optional)
Don't clear the optimistic personal detail, but this would keep stacking unnecessary data every time we add a new member. Also, it's useless for the user to see the outdated optimistic personal detail when the server already sends us the correct data.
or don't rerender the detail page when personal details change. we can use memo for this case.

Just FYI, we don't need to perform the 5th step quickly. We can perform it while offline to reproduce it easier.

Go offline
Add a new member (any user that doesn't exist in your contact, it can be a registered expensify user or non-registered, doesn't matter)
Click the member to open the detail
Go online
Wait for a few seconds until the apps reconnecting and the name and avatar will disappear

Hmmm, I'm having a slightly different experience with the avatar, but the username isn't an issue when testing Mac/Chrome and Android mobile web for me.

On both here's what I am doing and seeing:

Go to staging.new.expensify.com.
Go to Profile > Workspaces > Collect workspace.
Go to Members.
Invite a new member that does not have Expensify account.
Immediately after inviting the member, click on the highlighted new user in the list.

Expected Result:
The user name and avatar will not disappear and remain as they appear until the user updates them..
Actual Result:
In the RHP the username and avatar remain as they appear initially, but in the member table the avatar changes to a different default avatar. Pressing back and then clicking on the new member, shows the updated avatar.
https://github.com/Expensify/App/assets/10925636/17efd9f8-27d2-4f97-a3bf-b79485cc9c78

@strepanier03 did you test it on a collect workspace? Looking at the left side of the workspace menu, I guess it's a free workspace. The new RHP for workspace member detail (instead of a profile page that is shown in your video) is only available for collect workspace.

I'll retest, I made a collect workspace but maybe clicked the wrong button afterward and made on the free workspace.

Running into an issue recreating this. I get a "Hmm ... its not here" in the RHP when clicking on any Collect workspace member.

I'm going to ask for a hand repro'ing and then tie to a project.

Not sure what was different on the second collect workspace I made but I was able to repro with a fresh slate.
https://github.com/Expensify/App/assets/10925636/7f8e95b3-cd63-4859-840f-b9da3d09e21c

Proposal
Please re-state the problem that we are trying to solve in this issue.
The user name disappears and avatar changes to placeholder avatar.
What is the root cause of that problem?
The problem here happens because when we add a new workspace member, if that member doesn't exist in personal details list yet, we'll create optimistic personal details for them and then clearing the personal details after the request is done, see here.
This leads to the user seeing user name and avatar disappearing because the optimistic personal details is gone now.
What changes do you think we should make in order to solve the problem?

We had this same problem with the optimistic report: we create a new optimistic report with a user, but the report with that user already exists, so what we did is we'll navigate to the new report when the API request is successful.
Here's exactly how we implement it, we should do the same for the optimistic personal detail in this case

Do not clear the personal details of the existing users when the API request is successful
Modify the back-end to merge preexistingAccountID into the personalDetailsList item of the current optimistic personal detail created in front end. For example, if the optimisticAccountID created in front-end is 123456, and the actual accountID of the existing user is 654321, then the backend will return this Onyx data:

{
  "key": "personalDetailsList",
  "onyxMethod": "merge",
  "value": {
    "123456": {
      "preexistingAccountID": 654321
  }
}

Now, in the front-end, when we detect that there's the preexistingAccountID being merged into personalDetailsList, we'll do the following (same as here for report):

Check if the user is on the workspace member URL with optimistic account ID, if yes, navigate the user to the workspace member URL with the preexistingAccountID
Clear the optimistic personal details

This is the same approach as we did with the optimistic report, just that we do for optimistic personal details now. This will make sure the user has a seamless experience when using the product.
What alternative solutions did you explore? (Optional)
NA

@ikevin127 - Friendly bump on the proposal here, thanks!

@strepanier03 Sorry, didn't get notified 3 days ago.
I will review the mentioned proposal and get back in the next 24h.
Should I consider @bernhardoj's proposal too, since it was the first one on this issue ?

@nkdengineer @bernhardoj Could you please provide a video result of your best solution in terms of UI ?
Note: for the proposal involving BE changes, try to mock the BE response using a timeout, simply for the sake of demonstrating the video result in terms of UI.
I am asking for this so we can make a decision on which proposal to go with since one of them is proposing a strictly FE fix and the other one involves BE changes. I plan to tag the design team once we have the videos and decide if this could be addressed strictly from the FE side or whether to involve somebody from the BE team and have a BE / FE fix.

Here is mine
https://github.com/Expensify/App/assets/50919443/fa49774e-83cd-46fe-b64b-b03f41493b00

@nkdengineer @bernhardoj Could you please provide a video result of your best solution in terms of UI ?

Sure, I'll provide this tomorrow since I need to do some mocking of the BE.

@bernhardoj Thanks for your early proposal. After careful consideration I decided to move on with the other proposal since as per the expected result of the issue, that fits best as a solution to our issue.
Why ?
To be more specific I'm referring to the behaviour your video from here suggested: even if say we would disable (gray-out) the option until the BE response arrives, that looks more like a workaround considering the expected result, and additionally I did not see this behaviour anywhere else in the app when it comes to a call's optimistic -> success transition.

Expected result:

The user name and avatar will not disappear.

As per the expected result of the issue, I think @nkdengineer's proposal fits best as a solution here. The RCA is correct, the proposed solution fixes the issue as suggested by the expected result.
🎀👀🎀 C+ reviewed

[!note]
Considering BE changes are needed as part of the selected proposal's solution, I noticed that in the issue https://github.com/Expensify/App/issues/15511 and PR https://github.com/Expensify/App/pull/24320 which did something similar here, @puneetlath handled the BE side, therefore I'd suggest them for handling the BE part here too if they have the capacity.

@techievivek Otherwise, please let us know who could handle the BE side of the proposed solution. Thank you!

Just a quick question so I understand the RCA and then I can handle the BE changes.

The problem here happens because when we add a new workspace member

Could you please confirm whether this issue occurs for a user who doesn't exist in our database, or if it happens when the user might exist in the database but we don't have their personal details locally? I ask because if the user doesn't exist, are we sending the optimistic accountID in the request? If so, why doesn't it match what we finally receive in the response?

Reproduction step says this.

Invite a new member that does not have Expensify account.

In report case, it makes sense that the optimistically generated reportID doesn't match the backend reportID as a chat already exists between users but here the RCA is not clear to me.

Could you please confirm whether this issue occurs for a user who doesn't exist in our database

As far as my understanding goes, this is correct. It occurs for a user who doesn't exist in our database.

I ask because if the user doesn't exist, are we sending the optimistic accountID in the request? If so, why doesn't it match what we finally receive in the response?

In report case, it makes sense that the optimistically generated reportID doesn't match the backend reportID as a chat already exists between users but here the RCA is not clear to me.

@nkdengineer Could you please clarify ? Thank you!

@techievivek @ikevin127

Could you please confirm whether this issue occurs for a user who doesn't exist in our database, or if it happens when the user might exist in the database but we don't have their personal details locally?

This happens in both these cases

I ask because if the user doesn't exist, are we sending the optimistic accountID in the request?

No we're not sending optimistic accountID in the request in this case, we're only sending the emails

If so, why doesn't it match what we finally receive in the response?

@techievivek Even if we send the accountID to the back-end (tested), the back-end seems not to be using the optimistic accountID that was sent from front-end to create the user. The back-end will always send back a brand new accountID (different from the one optimistically generated from front-end)

@techievivek Please let us know if https://github.com/Expensify/App/issues/38925#issuecomment-2066111499 makes sense from a BE point of view when it comes to the selected proposal's solution.

Assigned the issue to @nkdengineer, I will start working on the backend changes for this.

@techievivek Let me know when the back-end change is complete.

Sorry for the delay. I couldn't get to this last week as I was focused on other high-priority stuff. I will try to prioritize this tomorrow.

@techievivek Still reproducible for me on latest main (local dev) and staging (v1.4.73-6), see videos below.

MacOS: Chrome

DEV
STG

@techievivek Still reproducible for me on latest main too.
https://github.com/Expensify/App/assets/161821005/dd0df08e-048d-40d2-9fe2-29720f72154f

Overdue notes: Issue is still reproducible and we're awaiting for the BE part to be completed before we can move forward with FE pull request review.

Okay, I see, thanks. I didn't wait long enough to see if the profile info would disappear. I am re-triaging it now.

Sorry for the delay, last week I was handling fires and stuff so couldn't come to this GH.

@nkdengineer Looking the the solutions you have mentioned.

Modify the back-end to merge preexistingAccountID into the personalDetailsList item of the current optimistic personal detail created in front end. For example, if the optimisticAccountID created in front-end is 123456, and the actual accountID of the existing user is 654321, then the backend will return this Onyx data:

{
  "key": "personalDetailsList",
  "onyxMethod": "merge",
  "value": {
    "123456": {
      "preexistingAccountID": 654321
  }
}

Can you get the App PR ready so I can test this with my backend changes? Asking because we don't send the optimistic accountID in the request so the response you are expecting is not possible, right?

@techievivek you can test with this open PR

@nkdengineer Added comment on the PR, thanks.

The PR has been on HOLD for BE PR to be merged for the last 2 weeks.

The backend PR is being reviewed, I will update here once we merged and deployed it to staging.

This is a tricky one, and @marcaaron is the assigned reviewer for backend changes. It will be great if we can have the discussion here or on slack so we can reach to a agreed solution.

Marc's comment on the PR

I don't quite understand the premise of this change. It's a single client who generated the accountID. Can they remove it from the Onyx data by applying successData?

My response:
When we invite a member to the workspace, we ensure that their personal details exist in Onyx. This can happen in one of three ways:

The personal details already exist.
The personal details are added to Onyx as part of the SearchForReports call, which is used when an admin tries to invite someone.
For a non-existing user, if the backend doesn't return any data, we create optimistic data in the frontend.
This optimistic entry becomes the source of truth for the invited user's personal details. Consequently, if these details are deleted in successdata, nothing appears in the profile, which is the bug we're addressing. You can check the screen recordings on GH to see this in action.

Our solution is to retain the optimistic personal details and have the backend inform us of the correct accountID personal details to use.
For example, if the optimistic accountID created in the frontend is 111111111, and the actual accountID of the existing user is 9999999, the backend will return this Onyx data:
{
  "key": "personalDetailsList",
  "onyxMethod": "merge",
  "value": {
    "111111111": {
      "preexistingAccountID": 9999999
    }
  }
}

Thus, anytime we look up the personal details of 111111111, we will check if there is a key called 9999999 and use the preexistingAccountID personal details if it exists.
I would suggest you take a look the RCA here to understand this more.

There are some subsequent comments after my above reply. I am going to address them here.

For a non-existing user, if the backend doesn't return any data, we create optimistic data in the frontend.

Why is the backend not returning any data?

Backend is returning the data but the accountID generated from backend is different from optimistic data generated in frontend.

This optimistic entry becomes the source of truth for the invited user's personal details.

I'm not sure what you mean by this. Last time I checked, accountID can't be generated by the client for use by the backend.

So when you invite the user, we generate optimistic accountID/personal details for the user, so if you were to navigate to user's profile it would use the optimistic data to show the info and not the returned data from the backend.

Consequently, if these details are deleted in successdata, nothing appears in the profile, which is the bug we're addressing. You can check the screen recordings on GH to see this in action.

Ok, but why are they not getting replaced with actual details of the newly created user? That's why I'm asking if it is safe to remove them from the successData.

Because the returned accountID from backend is different from optimistic accountID that was generated in the frontend and there is no mechanism to merge data as the accountIDs are different.

Our solution is to retain the optimistic personal details and have the backend inform us of the correct accountID personal details to use.

Why not just have the backend send the correct personal detail? What does the preexistingAccountID field do for us?

preexistingAccountID is one way to tell that the optimistic personal details generated is actually matched to a different accountID in backend and it forces it use to the backend optimistic data that was returned.

Thus, anytime we look up the personal details of 111111111, we will check if there is a key called 9999999 and use the preexistingAccountID personal details if it exists.

This might be easier to understand if we discussed a specific example. I'm sort of confused because personal details also have logins. So, it feels like this is a possibility:

We are using an optimistic accountID to do "something" when we should maybe be using a login instead. The server can always know the "accountID". The client can figure out the accountID if they have the personal details by using the login to find the correct one.
We are not sending the correct personal details back to the client when the account is created.
WDYT?

Yeah, we don't know need to explicitly send a new key preexistingAccountID for this case, we can definitely handle this with the login as that hasn't changed. But the contributor suggested the preexistingAccountID approach since we follow something similar in case of optimistic reports, which they have described in their proposal.

@nkdengineer, can you please review the above discussion and confirm if I have correctly understood the proposed solution? Additionally, could you explain any details I might have missed or provide further clarification to help @marcaaron understand the solution? Thanks.

@techievivek Yes, you're correct. That is exactly what I proposed.

It feels like we are maybe missing something. The optimistic accountID can be thrown away when the request succeeds? This requires no backend changes.

Because the returned accountID from backend is different from optimistic accountID that was generated in the frontend and there is no mechanism to merge data as the accountIDs are different.

Does the backend set the complete data or incomplete?

we can definitely handle this with the login, as that hasn't changed. But the contributor suggested the preexistingAccountID approach since we follow something similar in case of optimistic reports, which they have described in their proposal

accountID and reportID are different situations though. The accountID that is optimistic will never become real so it shouldn't ever be a problem and the user doesn't need to know about it.

if these details are deleted in successdata, nothing appears in the profile, which is the bug we're addressing

Could we not let the user take this action?
Or show a not found page?

This seems a bit edge case. Maybe better to avoid complexity if possible?

Does the backend set the complete data or incomplete?

Sorry, this is not clear to me what data we are talking about here. Backend returns the personal details of newly added user.

accountID and reportID are different situations though. The accountID that is optimistic will never become real so it shouldn't ever be a problem and the user doesn't need to know about it.

I agree, but then I am not sure why we even went with generating the optimistic data in the frontend, given the generated account would never match the one created in the backend.

Could we not let the user take this action?
Or show a not found page?

This seems a bit edge case. Maybe better to avoid complexity if possible?

Yes, there is another proposal as well for this. However, I liked the proposal by @nkdengineer because it allows the user to access the app without any constraints and fixes the problem, even though it's a bit more complicated. But even blocking the action here is not a big deal, so maybe we can keep things simple and just prevent the user to access newly added user's profile page.

blocking the action here is not a big deal, so maybe we can keep things simple and just prevent the user to access newly added user's profile page

I agree, I can't think of why we would need to be able to immediately navigate to a profile that will only have a login and no other details. Seems like a low value and uncommon user action to take.

Given the latest discussion here I think we're looking at re-assigning contributor for this issue to @bernhardoj, given they were first to post a proposal that would fix the issue by not allowing user profile to be opened while optimistic.
The reason I went with @nkdengineer's proposal was because at the moment it looked the best in terms of expected result even though it needed BE changes.

Here's the difference between the 2 proposals from a behaviour / looks POV we have bernhardoj's here and nkdengineer's here.

Before assignment though, if everyone is in agreement, I'd like to get @Expensify/design's take on the looks when it comes to bernhardoj's solution, maybe we can gray-out the option (optimistic UI) or something else more intuitive to the user to let them know that something is loading / happening and that's why the click doesn't seem to do anything, since that might be seen as broken functionality.

I kinda like the idea of using the 50% opacity pattern (offline/optimistic/disabled). We could also (or instead?) change the cursor to be the not allowed cursor when hovering over the row? Curious what the other designers are thinkin'

I'd rather not make the row look disabled personally, and I'm not sure if we even need the disabled cursor if we just use a regular cursor instead of the pointer cursor. There's a lot of things in the app you can't interact with and instead of doing a not allowed cursor we just use a regular mouse arrow, right?
That being said though, I don't feel great about this kind of exception we're creating. Why wouldn't we just be able to allow the user to open up the profile view, and keep the same avatar + login that was used during the invite process? That feels like a much better experience personally.
cc @puneetlath as I think I remember you chiming in on a previous discussion about this sort of thing where we display user information a certain way from Search/Find but it might change to hidden while chatting. This seems to be somewhat related.

Based on the design team input I'm a bit confused regarding the expected result given the current constraints.
As mentioned above in https://github.com/Expensify/App/issues/38925#issuecomment-2195457143, this is what the two currently existing proposals offer:

Here's the difference between the 2 proposals from a behaviour / looks POV we have bernhardoj's here and nkdengineer's here.

Based on https://github.com/Expensify/App/issues/38925#issuecomment-2196247877 and https://github.com/Expensify/App/issues/38925#issuecomment-2197032120:

That being said though, I don't feel great about this kind of exception we're creating. Why wouldn't we just be able to allow the user to open up the profile view, and keep the same avatar + login that was used during the invite process? That feels like a much better experience personally.

I agree this would be the better user experience, just wasn't sure if there was some technical limitation that was absolutely preventing us from doing it this way.

It seems like we're looking for an alternative solution (if possible) which expects a slightly different behaviour then what the current proposals offer.
Summary

nkdengineer already invested some time in opening a PR with their solution which would fulfil the issue's expected result but required BE changes
marcaaron suggested to avoid BE changes due to complexity and that being able to immediately navigate to a profile that will only have a login and no other details seems like a low value and uncommon user action
dannymcclain (design team) mentioned initially that the grayed-out offline pattern would look good for if we were to go with bernhardoj's solution which suggested not allowing to open user profile RHP on row click
further discussions between design team shawnborton and dannymcclain suggested a possible alternative solution where we still open user profile RHP and keep the same avatar + login that was used during the invite process (basically blocking the change when the real BE data comes in ? not sure)

cc @techievivek As I'm not sure where should we go from here and what should I request from the contributors (if still interested and if any changes are required due to the possible updated expected result).

Hmm, yeah this is a challenge because we use an optimistic accountID originally and then the back-end returns the real one. I can't really think of a straightforward solution either other than disabling the row while we wait for the API response.

Yeah, I think we can just move with disabling the row for now. @bernhardoj mentioned in their proposal that we do this in other flows as well.

We can discuss the compensation for @nkdengineer once the issue is fixed. CC @strepanier03. We had to reassign the issue to @bernhardoj, but @nkdengineer had already pushed a PR which we decided to close since it involved complex changes in backend.

PR is ready
cc: @ikevin127

I'll request in ND once payment is due.

[x]  [@ikevin127] The PR that introduced the bug has been identified. Link to the PR: https://github.com/Expensify/App/pull/22622
[x]  [@ikevin127] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: https://github.com/Expensify/App/pull/22622/files#r1676435226
[x]  [@ikevin127] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: N/A.
[x]  [@ikevin127] Determine if we should create a regression test for this bug.
[x]  [@ikevin127] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.

Regression Test Proposal
Precondition: User is admin of a Collect workspace.

Go to Profile > Workspaces > Collect workspace.
Go to Members.
Invite a new member that does not have an Expensify account, using an email address.
Immediately after inviting the member, verify that the newly added member row is disabled until the BE returns the created user information. While this happens, the default avatar should be shown.

Do we agree 👍 or 👎.

We can discuss the compensation for @nkdengineer once the issue is fixed.

@techievivek Could you help with the discussion here, thanks 🙇

@strepanier03 This was deployed to production 5 days ago (reference) meaning payment is due on 17th of July.

As @ikevin127 mentioned, the payment is due on the 17, so I've requested it in ND.

@bernhardoj - I closed the contract in Upwork without payment since you're requesting in Newdot now.
@ikevin127 - I've paid your contract and closed it as well.

@nkdengineer  and @techievivek - What payment should I authorize here? The full $250?

Payment summary

$250 - @bernhardoj via Manual Requests in Newdot (requested)
$250 - @ikevin127 via Upwork (paid)
$? - @nkdengineer via Upwork (pending)

@JmillsExpensify - Request incoming.

$250 approved for @bernhardoj


Stm32 fixes

Using embassy on STM32 Discovery board showed problems with

USART with parity
Clock settings (CFGR) when using PLL and prescaler
Flash ACR settings

This PR attempts to fix these

LGTM, just some rustfmt fixes needed to pass the build.

Awesome :rocket:
bors r+


Question: embedded reader, off-line reading.

Is there a way to specify for simpleviewer.html that an epub can be found in the browsers local storage?  I am looking for a way to enable 'off line' reading.  Other suggested approaches may be fine.

What about this?
https://github.com/readium/readium-js/pull/82

Thank you, that might work...I will have to study it.

Answered: https://github.com/readium/readium-js/pull/82


compress/testdata: Mark.Twain-Tom.Sawyer.txt is licensed under non-free license

Mark.Twain-Tom.Sawyer.txt under compress/testdata is licensed under non-free license "Project Gutenberg license". As book itself is in Public Domain I'm proposing to remove the current non-free license from the file including all references to "Project Gutenberg" .
This issue affects all branches of golang source tree including this file. And think it should be fixed in all supported release.
If this change is acceptable/accepted, I will provide patch for review in gerrit.

I don't see what the problem is, the header provided by the Gutenberg server is:
The Project Gutenberg EBook of The Adventures of Tom Sawyer, Complete by
Mark Twain (Samuel Clemens)

This eBook is for the use of anyone anywhere at no cost and with almost
no restrictions whatsoever. You may copy it, give it away or re-use
it under the terms of the Project Gutenberg License included with this
eBook or online at www.gutenberg.net

The sentence blatantly says "You many copy it", which is exactly what's done.

See footer.

Please go ahead and send a CL to remove the license and references to Gutenberg.

Opened CL https://go-review.googlesource.com/17196
Sorry for delay(CLA...).


build-list missing?

build-list appears to be missing from pycket.

racket dock w/ test

This seems to be an issue with using #lang pycket, since we don't have build-list as  a primitive. It looks like #lang racket/base provides an implementation that works with Pycket, though.

This isn't really a bug.


Webhook Subscription for Teams Conversation not working with WCF Relay

Hi,
Can someone please help me to fix this Issue. I am not able to debug from where it is going wrong. Basically I have created a WCF Rest API WebService using WCF Relay in Azure to have hybrid connection between on-premise and Azure. Also if I am ignoring any certificate validation, that endpoint is for on-premise as it is self-signed certificate but when making API call, I am using the base64 encoded public key provided by WCF Relay when publishing it in Azure.
WCF Contract And Implementation:
Contract Interface

Implementation

I am successfully able to get the "validationToken" in the WCF service and also returning the same validationToken immediately below 5 seconds. After returning, it always error out showing this message.
Postman Client For Sending HTTP Request

Error Response and no subscription created

Thank you in advance for all the help.

please post this question to stackoverflow as we are not able to help on this issue.


[CFP]: How to automate your FOSS policy and processes

Session Title
How to automate your FOSS policy and processes
Session Description
If you look at the OSPO mind map you will see an OSPO may have a lots of responsibilities such as "establish and improve Open Source processes", "oversee Open Source compliance", "eliminate friction from using and contributing to Open Source". Yet a lot of OSPOs only have a few people working on these responsibilities especially those who just started their OSPO. How do scale your OSPO with a small team?
Automation is the answer, but that raises the question which tools to use for which use cases.  In this session Thomas will show how several OSPOs have been working together to create open source tooling to automate their FOSS policies and processes. He will demonstrates a reference processes for how one can automate 'oversee Open Source Compliance' and 'Publishing a new open source project' from start to finish and some of lessons he learned on automation over the years.
Benefits to the Ecosystem
You will learn:

How you can automate your FOSS policy and processes by re-using the tooling, data and policy rules created by collaboration between several OSPOs under the Linux Foundation.
How you can make your policy and process simpler thereby making the life easier of your organization's developers whilst keeping your legal counsel happy and can contribute to improve licensing/security in the FOSS community.
What should be in your FOSS policy document and what not

Help us narrow down the focus a bit more. Please choose the OSPO related topic that best describes your proposal.
Adoption and Discovery, Compliance, Legal Developer Education, and Inventory, Evangelizing OSS Use and Ecosystem Participation
What level of experience should the audience have to best understand your presentation?
OSPO 101 (Beginner)
Speaker Name
Thomas Steenbergen
Speaker Bio
Thomas Steenbergen is the Head of Open Source Program Office at EPAM Systems (www.epam.com). He is steering committee member and one of the co-founders/organizers of the European Chapter of the TODO group and co-founder of the OpenChain Reference Tooling Work Group - both industry working groups where companies collaborate to address shared open source challenges. He is also an active contributor to the SPDX ISO specification for over 5 years, helping to better match what developers find in code and incorporate security (lead Security Profile).
As a core contributor to the OSS Review Toolkit, he enables highly automated open source policy checks in CI/CD by providing easy, open-source & scalable tooling and to share results in open standard (SBoM) formats. He is a frequent speaker and panellist at various global open source conferences and is always happy to start a conversation around anything open source. Thomas has held a variety of technical lead roles over the past 15 years across the Netherlands, United Kingdom and Germany.
Speaker preferred pronouns
he/him

LGTM! As we discussed, we can schedule this for the OSPOlogy November session (November 16 at 17:00 CET)

landing page created! https://community.linuxfoundation.org/events/details/lfhq-todo-group-presents-how-to-automate-your-foss-policy-and-processes/


api aggregation: category_code filter not working

When performing this request:
https://backend-fsn.ooni.org/api/v1/aggregation?test_name=web_connectivity&since=2022-01-24&until=2022-02-24&axis_x=measurement_start_day&category_code=LGBT
I get the error:
{"error":"'NoneType' object has no attribute 'lower'"}

Fixed in 1a963ebfd3cb9d84776fff70b06d9c36686344d2

Deployed


[WIP] Add a bylayer keyword to zonal

Successor to #775.  This provides a switch that allows you to iterate directly over the values of a rasterstack, instead of iterating over the layers and then the layer values.
It currently defaults to false (iteration over values, which is the new behaviour) but we can switch that to true (which is less breaking / the old behaviour).
Needs tests and decisions to be made.  This also fails when skipmissing=true, because it's not implemented for RasterStacks.  From discussion in #775 we still need to decide whether skipmissing on a rasterstack should skip a cell if it has any missing values, or skip a cell if all its values are missing.  Personally, I'm inclined to option 1 :).

Yeah, lets not break things straight away. The main reason to have it as true is so sum and mean just work as-is.
I think we probably need to move away from returning NamedTuple at some point to a similar object that math works on. At that point most workflows wont break when we flip the switch, but until then bylayer=true needs to be the default.

It's pretty easy to miss in the giant error stack though.


25 02 2021 - Commodities Payout Terms Meeting Minutes

Date
Thursday, 25 02 2021 - 11am ET / 4pm GMT
Untracked attendees

Fullname, Affiliation, GitHub username

Meeting notices

FINOS Project leads are responsible for observing the FINOS guidelines for running project meetings. Project maintainers can find additional resources in the FINOS Maintainers Cheatsheet.

All participants in FINOS project meetings are subject to the LF Antitrust Policy, the FINOS Community Code of Conduct and all other FINOS policies.

FINOS meetings involve participation by industry competitors, and it is the intention of FINOS and the Linux Foundation to conduct all of its activities in accordance with applicable antitrust and competition laws. It is therefore extremely important that attendees adhere to meeting agendas, and be aware of, and not participate in, any activities that are prohibited under applicable US state, federal or foreign antitrust and competition laws. Please contact<EMAIL_ADDRESS>with any questions.

FINOS project meetings may be recorded for use solely by the FINOS team for administration purposes. In very limited instances, and with explicit approval, recordings may be made more widely available.

Agenda

[ ] Convene & roll call (5mins)
[ ] Display FINOS Antitrust Policy summary slide
[ ] Review Meeting Notices (see above)
[ ] Approve past meeting minutes
[ ] Revisit fPML example that has been updated to represent single period.
[ ] Brief discussion on Quantity Frequency update that is required
[ ] Studio Proposals - PaymentDates, PricingDates, Rounding

Decisions Made

[ ] Decision 1
[ ] Decision 2
[ ] ...

Action Items

[ ] Action 1
[ ] Action 2
[ ] ...

WebEx info

Meeting link: https://finos.webex.com/finos/j.php?MTID=m67d73e1fc1592e699f3cf95d4627de8d
Meeting number:<PHONE_NUMBER>
Password: JMrsuEmY376
Call-in:

Join by video system: Dial<EMAIL_ADDRESS>You can also dial <IP_ADDRESS> and enter your meeting number.
Join by phone: +1-415-655-0003 US Toll | +44-20319-88141 UK Toll | Access code:<PHONE_NUMBER>

hi

Hi

Hi Everyone!

attending

attending

Minutes approved.


CCMR

The implementation of CCMR through ptlflow takes up significantly more GPU memory than what is stated in the SOTA paper.
For 160x120 images, I'm requiring more than 24GB of VRAM for training which is inconistant with the paper.
Log:
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/lightning/pytorch/core/optimizer.py", line 169, in step
[rank0]:     step_output = self._strategy.optimizer_step(self._optimizer, self._optimizer_idx, closure, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/lightning/pytorch/strategies/ddp.py", line 280, in optimizer_step
[rank0]:     optimizer_output = super().optimizer_step(optimizer, opt_idx, closure, model, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/lightning/pytorch/strategies/strategy.py", line 234, in optimizer_step
[rank0]:     return self.precision_plugin.optimizer_step(
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/lightning/pytorch/plugins/precision/precision_plugin.py", line 119, in optimizer_step
[rank0]:     return optimizer.step(closure=closure, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/torch/optim/lr_scheduler.py", line 75, in wrapper
[rank0]:     return wrapped(*args, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/torch/optim/optimizer.py", line 391, in wrapper
[rank0]:     out = func(*args, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/torch/optim/optimizer.py", line 76, in _use_grad
[rank0]:     ret = func(self, *args, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/torch/optim/adamw.py", line 165, in step
[rank0]:     loss = closure()
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/lightning/pytorch/plugins/precision/precision_plugin.py", line 105, in _wrap_closure
[rank0]:     closure_result = closure()
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/lightning/pytorch/loops/optimization/optimizer_loop.py", line 149, in __call__
[rank0]:     self._result = self.closure(*args, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/lightning/pytorch/loops/optimization/optimizer_loop.py", line 135, in closure
[rank0]:     step_output = self._step_fn()
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/lightning/pytorch/loops/optimization/optimizer_loop.py", line 419, in _training_step
[rank0]:     training_step_output = self.trainer._call_strategy_hook("training_step", *kwargs.values())
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/lightning/pytorch/trainer/trainer.py", line 1494, in _call_strategy_hook
[rank0]:     output = fn(*args, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/lightning/pytorch/strategies/ddp.py", line 351, in training_step
[rank0]:     return self.model(*args, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1532, in _wrapped_call_impl
[rank0]:     return self._call_impl(*args, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1541, in _call_impl
[rank0]:     return forward_call(*args, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/torch/nn/parallel/distributed.py", line 1593, in forward
[rank0]:     else self._run_ddp_forward(*inputs, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/torch/nn/parallel/distributed.py", line 1411, in _run_ddp_forward
[rank0]:     return self.module(*inputs, **kwargs)  # type: ignore[index]
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1532, in _wrapped_call_impl
[rank0]:     return self._call_impl(*args, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1541, in _call_impl
[rank0]:     return forward_call(*args, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/lightning/pytorch/overrides/base.py", line 98, in forward
[rank0]:     output = self._forward_module.training_step(*inputs, **kwargs)
[rank0]:   File "/home/hmohan/Programming/T-FlowModels/ptlflow/ptlflow/models/base_model/base_model.py", line 410, in training_step
[rank0]:     preds = self(batch)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1532, in _wrapped_call_impl
[rank0]:     return self._call_impl(*args, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1541, in _call_impl
[rank0]:     return forward_call(*args, **kwargs)
[rank0]:   File "/home/hmohan/Programming/T-FlowModels/ptlflow/ptlflow/models/ccmr/ccmr.py", line 301, in forward
[rank0]:     corr = corr_fn(coords1)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1532, in _wrapped_call_impl
[rank0]:     return self._call_impl(*args, **kwargs)
[rank0]:   File "/home/hmohan/miniconda3/envs/ptlflow/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1541, in _call_impl
[rank0]:     return forward_call(*args, **kwargs)
[rank0]:   File "/home/hmohan/Programming/T-FlowModels/ptlflow/ptlflow/utils/correlation.py", line 505, in forward
[rank0]:     corr = iter_translated_spatial_correlation_sample(
[rank0]:   File "/home/hmohan/Programming/T-FlowModels/ptlflow/ptlflow/utils/correlation.py", line 345, in iter_translated_spatial_correlation_sample
[rank0]:     corr[:, i // dilation_patch[0], j // dilation_patch[1]] = (input1 * p2).sum(
[rank0]: torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 16.00 MiB. GPU
Epoch 0:   0%|          | 0/993 [00:02<?, ?it/s]

Hello, thank you for raising this issue.
First, please note that training is not well supported in PTLFlow, and I cannot guarantee you will get good results with our generic training script. Moreover, I think CCMR did not open source their official training code, so I do know the specific settings of their training.
Regarding your memory problem, I think the main issue is that you are using the correlation block from ptlflow.utils.correlation.IterativeCorrBlock, which is just a simple and not-optimized iterative implementation. To match the original model, you should first compile the alt_cuda_corr package (check ptlflow/utils/external/alt_cuda_corr). With alt_cuda_corr, you should get faster speeds and lower memory consumption. I hope this solves your problem, but again, I do not guarantee you can match the paper.
If there are still other issues, just let me know.
Best.

Hello, thank you for raising this issue.
First, please note that training is not well supported in PTLFlow, and I cannot guarantee you will get good results with our generic training script. Moreover, I think CCMR did not open source their official training code, so I do know the specific settings of their training.
Regarding your memory problem, I think the main issue is that you are using the correlation block from ptlflow.utils.correlation.IterativeCorrBlock, which is just a simple and not-optimized iterative implementation. To match the original model, you should first compile the alt_cuda_corr package (check ptlflow/utils/external/alt_cuda_corr). With alt_cuda_corr, you should get faster speeds and lower memory consumption. I hope this solves your problem, but again, I do not guarantee you can match the paper.
If there are still other issues, just let me know.
Best.

I was able to compile alt_cuda_corr I checked to ensure that I was able to import it as well.


/response-headers broken with Flask 0.11

Since updating from Flask 0.10.1 to 0.11.0, when trying to request /response-headers I get:
[...] ERROR in app: Exception on /response-headers [GET]
Traceback (most recent call last):
  File ".../site-packages/flask/app.py", line 1988, in wsgi_app
    response = self.full_dispatch_request()
  File ".../site-packages/flask/app.py", line 1641, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File ".../site-packages/flask/app.py", line 1544, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File ".../site-packages/flask/_compat.py", line 33, in reraise
    raise value
  File ".../site-packages/flask/app.py", line 1639, in full_dispatch_request
    rv = self.dispatch_request()
  File ".../site-packages/flask/app.py", line 1625, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File ".../site-packages/httpbin/core.py", line 314, in response_headers
    response = jsonify(headers.lists())
  File ".../site-packages/httpbin/core.py", line 40, in jsonify
    response = flask_jsonify(*args, **kwargs)
  File ".../site-packages/flask/json.py", line 266, in jsonify
    (dumps(data, indent=indent, separators=separators), '\n'),
  File ".../site-packages/flask/json.py", line 126, in dumps
    rv = _json.dumps(obj, **kwargs)
  File ".../json/__init__.py", line 237, in dumps
    **kw).encode(obj)
  File ".../json/encoder.py", line 201, in encode
    chunks = list(chunks)
  File ".../json/encoder.py", line 436, in _iterencode
    o = _default(o)
  File ".../site-packages/flask/json.py", line 83, in default
    return _json.JSONEncoder.default(self, o)
  File ".../json/encoder.py", line 180, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <generator object MultiDict.lists at ...> is not JSON serializable

This is on Python 3.5 with httpbin 0.4.1.
I opened https://github.com/pallets/flask/issues/1825, but apparently this is a httpbin issue. It does jsonify(headers.lists()), and headers.lists() is a generator on Python 3 (despite the Werkzeug docs not saying so).
I'm not sure why this worked with older Flask versions, but httpbin should apparently do jsonify(list(headers.lists())) here (and possibly in other places using a MultiDict).

+1, I'm seeing this issue as well (and has spread through to other popular projects as well)


Upgrading an existing project's use of Hearth

This question occurs to me as I look at updating my testing work on eds-app - what would we need to do to make it easier to upgrade the use of Hearth in an existing project?
Right now, it seems the steps look like this, assuming you're updating from the main branch:

Make sure you've versioned your existing work
Run composer update
Run artisan hearth:install
Manually merge any changes to files that Hearth has replaced, such as the routes in web.php

Questions/Ideas:

Can we extract the customizations Hearth needs to make and inject them at an appropriate place in files that are likely to be touched in a project using Hearth, rather than overwriting? (for web.php, something like what is described at https://5balloons.info/split-and-organise-laravel-routes-into-multiple-files/)

Can we make the artisan hearth:install process more interactive, or make use of Git-style diffing?

These are not urgent, but worth thinking about due to experiences of drift / challenging upgrades on past projects trying to establish a common building base.

Can we extract the customizations Hearth needs to make and inject them at an appropriate place in files that are likely to be touched in a project using Hearth, rather than overwriting? (for web.php, something like what is described at https://5balloons.info/split-and-organise-laravel-routes-into-multiple-files/)

I agree, this would be a great improvement. I could imagine splitting the routes into files per model, so web.php would require:

user.php
fortify.php
resource.php
organization.php

Etc. Then custom routes could go in their own files, also imported into web.php.

In terms of install interactivity, it may be as simple as: https://laravel.com/docs/8.x/artisan#prompting-for-input
All the stub copying could be made conditional based on user input. So:
Install user model? (yes/no)

Etc.

@waharnum sounds good— I'm working on the multilingual improvements we discussed last week (among other things, I've created a CrowdIn account for the project to manage translating strings provided by Hearth). I'm using a GitHub project to track issues in the 1.0.0 milestone if you want to add yours there too: https://github.com/fluid-project/hearth/projects/1


Temporarily enabling test for nodejs

Motivation
To enable some nodejs tests for ci, since I'm having trouble running them locally
Changes

Workflow

⚠ Create your PR as draft ⚠
Work on you PR until the CI passes (if something not related to your task is failing, you can ignore it)
Mark it as ready for review

Test logic is modified? -> Get a review from RFC owner. We're working on refining the codeowners file quickly.
Framework is modified, or non obvious usage of it -> get a review from R&P team

:rocket: Once your PR is reviewed, you can merge it!
🛟 #apm-shared-testing 🛟
Reviewer checklist

[ ] Relevant label (run-parametric-scenario, run-profiling-scenario...) are presents
[ ] If PR title starts with [<language>], double-check that only <language> is impacted by the change
[ ] No system-tests internal is modified. Otherwise, I have the approval from R&P team
[ ] CI is green, or failing jobs are not related to this change (and you are 100% sure about this statement)
[ ] A docker base image is modified?

[ ] the relevant build-XXX-image label is present

[ ] A scenario is added (or removed)?

[ ] Get a review from R&P team

Hi @ida613 ,
We receive a lot of PR, and all of them need to be reviewed, and depending the change, lot of people are able to review it. In consequence, this repo is in the watchlist of lot of people, and any PR causes lot of github nitifications.
By setting PR as draft, it tells to everybody who is potential reviewers that your PR is a work in progress, and does requires yet any attention.
As soon as it's ready, you can set it as normal PR, ready for review, and it'll get the review.

How do you want me to change PR description and title?

You can edit title and PR description with edit buttons. I agree with Roberto that the current title and description does not makes very clear if this PR is only a test, or if you plan to merge it.


[1661. Average Time of Process per Machine] with 403 Forbidden?

First of all, I would like to express my gratitude. I would like to contribute by looking at the source code to solve this problem, but I don't think I have the skills to do so yet.
I submitted 1661. Average Time of Process per Machine, a correct answer doesn't have a response to commit Github. But when submitted from a different one of problems, it was uploaded to GitHub normally.
This error appears on the console.
bam.nr-data.net/jserrors/1/8d5fb92f6e?a=1100293087&v=1.252.0&to=ZwMAYEdSCktRWxZRXV5JJEFbUBBRX1ZNSF5RHwVGWkYKXB5OC11FQ1wxXFRBAVxgVANBVUIJF1pRZQ1dRxYFXUY%3D&rst=22480&ck=0&s=52c7394b446403a1&ref=https://leetcode.com/playground/R2bRmArg/shared&hr=0:1
   Failed to load resource: the server responded with a status of 403 ()

nr-spa-1.252.0.min.js:2
   POST https://bam.nr-data.net/jserrors/1/8d5fb92f6e?a=1100293087&v=1.252.0&to=ZwMAYEdSCktRWxZRXV5JJEFbUBBRX1ZNSF5RHwVGWkYKXB5OC11FQ1wxXFRBAVxgVANBVUIJF1pRZQ1dRxYFXUY%3D&rst=12474&ck=0&s=52c7394b446403a1&ref=https://leetcode.com/playground/aorLQLoE/shared&hr=0 403 (Forbidden)

I saw the questions before but it didn't seem to exist. Thank you.

Thanks for your kind response.
I got it how to fix it.
If anyone gets this messages or fail to push for right answers(red check pattern), refreshing the current web page(F5 button) would solve the issue.
Thank you very much @raphaelheinz.


"Use My Location" Should Zoom, Show Pin

Bug
"Use My Location" should zoom map to my location, and show a movable pin, but only selects a What3Words.
To Reproduce
Steps to reproduce the behavior:

Create a new case
Click "Use My Location."
Does not zoom to the current location. Does not place a pin on the map that I can move.

Expected behavior
Use My Location should zoom map to location, and show pin.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

Win 10, FF 73

Additional context
Related: #273

Approved.


Add controller-bootstrap go template files

Issue: aws-controllers-k8s/community/issues/1358
Description of changes:

This PR is to add the various go template files which will be used to bootstrap a controller.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

/approve

Excellent work, @JamesJHPark !!
And super feedback @RedbackThomson !!
/lgtm


Fatal crash

What are you experiencing an issue with?

[ ] Aurora
[ ] Aurora supported game, (Fill in the game)
[ ] Aurora Wrapper
[ ] Aurora Profile
[ ] Aurora supported device, (Fill in problematic devices)
[ ] Aurora Scripts
[ ] Aurora Updater
[ ] Aurora Lighting issue
[ x] Other, (Was called order to contact author)

What kind of an issue is it?

[ x] Crash
[ ] Performance problems
[ ] Visual bug
[ ] Localization issue
[ ] Enhancement suggestion
[ ] Device issue
[ ] Other, (Fill in another type of issue here)

Expected behavior:
Program should start
Actual behavior:
Program crash
How often does this problem occur?
not sure
Please describe the steps to reproduce this issue:
The issue can be reproduced by doing following steps:

double clicked the program
this message appear
this happen after I downloaded and use the pre beta version

What is the version of Aurora you are experiencing this issue with?

My version is... (0.06b)
Does the previous version of Aurora have this issue?
The previous version, (Fill in the version here), did/did not have this issue
(there are some issues with the overwatch game ...... will create a seperate report for that .)
Please include any logs, screenshots, or files that are related to this issue:

For logs, you can use: http://pastebin.com/
For screenshots, you can use: http://imgur.com/ShVC9Vb
For files, you can use: http://www.tinyupload.com/ , https://www.dropbox.com/ , or attach them to the issue.

Delete %appdata%/Aurora


How to use StoreLimits with WasiCtx?

wasmtime version: 3.0.1
Currently, we can use wasmtime_wasi::WasiCtx as follow:
let mut linker: Linker<WasiCtx> = Linker::new(&engine);
wasmtime_wasi::add_to_linker(&mut linker, |s| s)?;
let wasi = WasiCtxBuilder::new().build();
let mut store = Store::new(engine, wasi);

The problem here is the WasiCtx can only be used as concrete store state and can't compose with other fields.
From the example we can use like this:
store.limiter(move |state| &mut state.limits);

But now wasit  have no limits field, so how can we StoreLimits to limit the resource usage?

I believe you can do
struct State {
    limits: MyResourceLimiter,
    wasi: WasiCtx,
}

let mut linker: Linker<WasiCtx> = Linker::new(&engine);
wasmtime_wasi::add_to_linker(&mut linker, |state| &mut state.wasi)?;
let wasi = WasiCtxBuilder::new().build();
let limits = todo!();
let mut store = Store::new(engine, State { limits, wasi });
store.limiter(move |state| &mut state.limits);

Oh, there it is.
Thanks very much!


Remove AGAST (for push to opencv's main)

Remove AGAST in favor of PR: https://github.com/Itseez/opencv/pull/3919

:+1:


N32: DIMS jobs

Part of #979

@frnoreen does this look accurate? I'm not sure if the position is remote/hybrid/local

@AngelOnFira I'd say local/remote are the two options

@AngelOnFira I'd say local/remote are the two options

I think Stolkholm/remote would be the best? local would be a bit ambiguous I think.

lgtm :+1:


made updates to workbook and changed titles to reflect new branding n…

…ames
PR Checklist

[ ] Explain your changes, so people looking at the PR know what and why, the code changes are the how.
[ ] Validate your changes using one or more of the testing methods.

If adding or updating templates:

[ ] post a screenshot of templates and/or gallery changes
[ ] ensure your template has a corresponding gallery entry in the gallery folder
[ ] If you are adding a new template, add your team and template/gallery file(s) to the CODEOWNERS file. CODEOWNERS entries should be teams, not individuals
[ ] ensure all steps have meaningful names
[ ] ensure all parameters and grid columns have display names set so they can be localized
[ ] ensure that parameters id values are unique or they will fail PR validation (parameter ids are used for localization)
[ ] ensure that steps names are unique or they will fail PR validation (step names are used for localization)
[ ] grep /subscription/ and ensure that your parameters don't have any hardcoded resourceIds or they will fail PR validation
[ ] remove fallbackResourceIds and fromTemplateId fields from your template workbook or they will fail PR validation

Changes to workbook -  Added new sections on federated providers and legacy policies:


Rename Partner marketplace page to Paid Packs

changing page name, conflicts w new /marketplace

Status
Ready/In Progress/In Hold (Reason for hold)
Related Issues
fixes: link to the issue
Description
A few sentences describing the overall goals of the pull request's commits.
Screenshots
Paste here any images that will help the reviewer

Why not call the entire article Marketplace Packs (instead of Marketplace/Paid Packs) and add another H2 before the What Can Be Paid? that will be called Paid Packs?


Functions timeout at 15s regardless of requestTimeout value

I've set a requestTimeout of 60000 for a stitch function that can take a while sometime (10-30s) but when it timeouts, it's always at around 15s instead. Let me know if I'm missing something. Thanks!

Hi, i will check it as soon as possible. Maybe there is a miscorrect code on the native side, i will check its soon

You were right (missed in iOS),  a hotfix uploaded now


increment build number for new build and newer dependencies

Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

This is just an attempt to see if a newer version of netcdf is pinned.  Current MOAB images are pinned to a fixed version of netcdf requiring packages that depend on it to also pin that version manually

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge-admin, please rerender

perhaps it's already the newest netcdf?

@gonuke, you can compare the current libnetcdf here:
https://github.com/conda-forge/moab-feedstock/blob/master/.ci_support/linux_64_mpimpichnumpy1.18python3.7.____cpythontempestnotempest.yaml#L24
with the conda-forge pinned version here:
https://github.com/conda-forge/conda-forge-pinning-feedstock/blob/master/recipe/conda_build_config.yaml#L554
and see that they match.  If feedstocks are migrating to a new version, that will show up here:
https://github.com/conda-forge/conda-forge-pinning-feedstock/tree/master/recipe/migrations
(not presently the case for libnetcdf) and you can follow the process here:
https://conda-forge.org/status/#other_migrations
In general, a rerender won't bring versions up to date with the latest pinned version unless a migration has just finished.  Instead, the bot that takes care of migration will watch until all the dependencies for moab have migrated and then will automatically make a PR to migrate moab.  If that doesn't happen, it typically indicates a problem (e.g. migration of 2 packages got tangled up somehow).  So it doesn't hurt to keep an eye out.
If you think there's something great in the latest libnetcdf and we would want it in moab but conda-forge isn't migrating to it yet, you would need to do a pull request to https://github.com/conda-forge/conda-forge-pinning-feedstock/pulls to suggest a migration.

Thanks @xylar !  I realized too late that I was going down the wrong path on multiple fronts.

No worries.  Thought I'd just give the broader context in case it's helpful.
It looks like libnetcdf 4.8.1 really is the latest release so there's nothing to be done on that particular front.


Spike: Handling configuration differences between region (or environment)

We need an East, West, and Central configuration for Project Jackson.  Each region will have a env configuration for "preferred region". We will need a way to set this in an automated manner.
cc @shwetams

@andrebriggs - are you looking for additional configuration options in addition to tfvars file?

Infra SPK commands and Fabrikate environments address this issue.


replace after annotation with attribute

PHPUnit 11 emits a deprecation warning when using annotations (@after), and they will not work in PHPUnit 12.
Changing this means that the "after" functionality will not work in phpunit versions < 10, but it also should not cause an error. Users directly calling "restoreEnvironmentVariables()" would be fine, I think. See https://github.com/sebastianbergmann/phpunit/issues/4502

re: failures
Both static analysis and unit test failures look like what I would expect:

static analysis correctly complains about a missing class (After) in phpunit < 10.0
restoreEnvironmentVariables() is not run after each test for phpunit < 10.0

Tests for those older versions might need to be removed, and a composer dependency/conflict added to stop the next version from being installed alongside older phpunit?


proposal: Add strict mode for services

Let user to decide what we should do when we meet missing features:

with strict, we always throw errors.
without strict, we will ignore them.

PairError could be ignored safely?


series-lines: Tooltip doesn't show when in "large" mode

Version
4.8.0
Reproduction link
https://codepen.io/cyric/pen/VwabaqV
Steps to reproduce
Create a chart using series-lines and force "large" mode to be active (via "large" and "largeThreshold" keys). Scatter charts have a similar feature, but tooltips seem to work there when in large mode  (similar issue for scatter: https://github.com/apache/incubator-echarts/issues/11241).
In the example, the top series has "large" mode off and the tooltip works, but the bottom series has "large" mode on and the tooltip no longer works.

What is expected?
Tooltips still work when a "lines" series is in "large" mode.
What is actually happening?
Tooltips no longer work when a "lines" series is in "large" mode.

Forcing "large" mode by setting { large: true } and "largeThreshold" to a value less than the number of points in the series. Setting a low threshold value for the purposes of the example, typically it would be much higher.

I have tried this case by 5.0, It seems work, please check it out.

Yes, thank you, it does seem to work with the 5.0.0-alpha.2 version. However, the tooltips still fail to show if the data contains an "undefined" or "NaN" value anywhere. I can filter them out though.
Two other, somewhat unrelated notes, when trying to use the v5.0.0-alpha.2:

I'm using the echarts-for-react package which is currently incompatible with it because v5 now exports as an e6module. A simple enough tweak to the echarts-for-react source code gets it to work though.
I had to stop using "lazy" updating of the chart, otherwise I get "Error: setOption should not be called during main process." errors, something I was not getting with v4.9


improve mda extractor and allow unit properties to bet get/set for multiple units at once

improve mdaextractor behavior for remote files
enable setting property of multiple units simultaneously
implement getUnitPropertyNames
allow getUnitProperty for multiple units

I don’t know about unit_id being a list also. It would have to be unit_ids i think

I think we should make an additional function instead -- I am beginning to use the framework and do think that getting/setting multiple at a time is important.
How about one of the following:
sorter.setUnitsProperty(unit_ids, property_name, values)
sorter.setUnitPropertyMulti(unit_ids, property_name, values)
(I don't think setUnitProperties is correct, although it sounds better)
I vote for setUnitsProperty

Yes. I'll adjust the pull request accordingly and then we can discuss.

I updated the pull request accordingly (although haven't yet implemented getChannelsProperty)


Fix about us page

Codecov Report

Merging #346 (76f4543) into master (96638ee) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #346   +/-   ##
=========================================
  Coverage     67.00%   67.00%
  Complexity      942      942
=========================================
  Files           137      137
  Lines          3194     3194
  Branches        452      452
=========================================
  Hits           2140     2140
  Misses          887      887
  Partials        167      167

Continue to review full report at Codecov.

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


Update ViewModelInjectionDetector to support a lint option

Replaces #46

@WhosNickDoglio this is still in draft, did you want to ping us when it's ready for review?

@ZacSweers Yeah sorry, I threw something together quick and was going to spend some time on it this weekend but got busy, I plan to finish it tomorrow and will ping you when it's ready 👍

@ZacSweers This is ready for review whenever you have time!

@WhosNickDoglio Do you have example how user can set this parameter? I'm trying to find some way to pass custom option to lint but i think i'm missing something

@jakoss
In your lint.xml file you would add this:
<issue id="ComposeViewModelInjection">
    <option name="viewmodel-factories" value="ViewModelFactory1,ViewModelFactory2, etc" />
</issue>

@WhosNickDoglio Thanks!


Could the source of BadRequest be added to the message for this error?

When getting a BadRequest error from the SBG platform, it's not clear what the cause of the bad request is. I assume this could be input IDs, the workflow IDs, the project IDs etc. If the reason for the bad request was listed in the error message this would make debugging easier on the user side.

Thank you for filing this issue. I assume you encountered this error when setting up a task for execution?

Yes, exactly. It was using api.tasks.create
On Mon, Dec 10, 2018 at 12:48 PM christiansbg<EMAIL_ADDRESS>wrote:

Thank you for filing this issue. I assume you encountered this error when
setting up a task for execution?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/sbg/sevenbridges-python/issues/109#issuecomment-445966944,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AjMMnaf5csDvlG19zwniyeQAZw0AcQqyks5u3siUgaJpZM4ZMAZ_
.

Was this resolved? I am experiencing the same issue


Update price field in SmapleDataUtil.java

Codecov Report

Merging #75 (8e00673) into master (9fe5a24) will decrease coverage by 3.65%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##             master      #75      +/-   ##
============================================
- Coverage     59.84%   56.19%   -3.66%
- Complexity      427      429       +2
============================================
  Files            85       89       +4
  Lines          1579     1696     +117
  Branches        175      195      +20
============================================
+ Hits            945      953       +8
- Misses          588      693     +105
- Partials         46       50       +4

Impacted Files
Coverage Δ

.../eatwhere/foodguide/model/util/SampleDataUtil.java
3.89% <ø> (ø)

...e/foodguide/logic/parser/FindTagCommandParser.java
52.38% <0.00%> (-47.62%)
:arrow_down:

...dguide/logic/parser/FindLocationCommandParser.java
52.38% <0.00%> (-47.62%)
:arrow_down:

...where/foodguide/logic/commands/FindTagCommand.java
24.00% <0.00%> (-9.34%)
:arrow_down:

.../foodguide/logic/commands/FindLocationCommand.java
24.00% <0.00%> (-9.34%)
:arrow_down:

...twhere/foodguide/logic/parser/FoodGuideParser.java
66.66% <0.00%> (-6.07%)
:arrow_down:

...e/foodguide/logic/commands/FindCuisineCommand.java
0.00% <0.00%> (ø)

...odguide/logic/parser/FindCuisineCommandParser.java
0.00% <0.00%> (ø)

...odguide/logic/parser/UnfavouriteCommandParser.java
0.00% <0.00%> (ø)

...foodguide/logic/parser/FavouriteCommandParser.java
0.00% <0.00%> (ø)

... and 2 more

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


Add support for vendor json mime types

Added support for vendor json mime types so that autorest can detect these types as deserializable.
Handles vendor mime types with and without parameters:

application/vnd.github.v3+json
application/vnd.github+json; version=3

Updated based on recommendations, also added a unit test for vendor mime type handling. Please review again.


Use context_campaign_referrer instead of referrer

After a long and protracted conversation with Segment support, it seems that context_campaign_referrer should be used instead of referrer (referer?).
referrer: contains the address of the previous web page from which a link to the currently requested page was followed
context_campaign_referrer: The previous page according to the UTM parameters:
- context is Segment's word for the payload sent with the page ping
- campaign is their word for UTM attributes
Investigation
To test this, run:
-- replace "segment" with the correct schema
select context_campaign_referrer, referrer, * from segment.pages
where context_campaign_referrer != referrer
	and context_campaign_referrer is not null
	and referrer is not null

order by received_at desc
limit 1000

Inspect some of the results.
When running this (+ a few permutations) I found that referrer is filled in way more often than context_campaign_referrer.
Where both existed, context_campaign_referrer seemed to have "more interesting" results (i.e. an external website rather than an internal one).
Recommendation
I'm not sure which one is technically more correct (e.g. What Would Google Do?)
Next time we work with a client with Segment data, let's look into this. For now, if someone else finds this issue, it's possible for them to work around it by pre-processing this data to coalesce the two files together (or pass it through using the pass_though_cols variable)

Issue closed to prepare for Repository Archival


class/lockvar interaction problem

Steps to reproduce
(Note running with #12868, doubt that that matters)
Source this script
vim9script

class C
    this.val: number
    def new(this.val)
    enddef
endclass

var some_dict: dict<C> = { a: C.new(1), b: C.new(2), c: C.new(3), }

lockvar 2 some_dict

var current: C

current = some_dict['c'] | echo 'A:' current
current = some_dict['b'] | echo 'B:' current

def F()
    current = some_dict['c']
enddef

def G()
    current = some_dict['b']
enddef

F() | echo 'C:' current
G() | echo 'D:' current

echo some_dict

Observe this output
A: object of C {val: 3}
B: object of C {val: 2}
C: object of C {val: 3}
Error detected while processing command line..script /home/err/bugs/vim/classlock/lockclass.vim[27].
.function <SNR>34_G:
line    1:
E741: Value is locked: current

There's no attempt at modified the locked structures. Notice that it works at script level.
Source the following, which uses a list instead of a class in some_dict and there is no problem
vim9script

var some_dict: dict<list<number>> = { a: [1], b: [2], c: [3], }

lockvar 2 some_dict

var current: list<number>

current = some_dict['c'] | echo 'A:' current
current = some_dict['b'] | echo 'B:' current

def F()
    current = some_dict['c']
enddef

def G()
    current = some_dict['b']
enddef

F() | echo 'C:' current
G() | echo 'D:' current

#some_dict['a'] = [11]

echo some_dict

Expected behaviour
No error.
Version of Vim
9.0.1778 + PR#12868
Environment
linux
Logs and stack traces
No response

This is a bug not related to https://github.com/vim/vim/pull/12868.   I have updated the PR with a fix for this issue.


mySQL Support ?

Hi is there exact time where MySQL support would be available please ? MSSQL is useless for ppl how running it on Linux, not single sane person would use mssql on linux server :)..
Regards

Please check this - https://github.com/blazorhero/CleanArchitecture/issues/75


[WIP] Update to generic requests

This is a breaking change that makes the body buffer a generic type instead of Cow<'a, [u8]>, and removes the ability to convert a borrowed request into a HttpRequest (you can still used borrowed bodies though). This means the underlying http transport can decide what kinds of body types it will accept, rather than the request types forcing that decision.
elastic now accepts any type that is Into<reqwest::Body>, so it supports the previous types plus File. With stable specialisation we could add some more concrete types.
I haven't gone through the benchmarks yet (it should be much of a muchness), but will check those out and let the API simmer for a bit before merging. On the stable channel, the request body will be copied by reqwest if you use borrowed data, like &[u8] or &str.
Other relevant PRs:

https://github.com/elastic-rs/elastic-requests/pull/26/
https://github.com/elastic-rs/elastic-reqwest/pull/30/

@stephanbuys I'd be interested in any feedback you had on making the request body generic. It should make your idea in #165 quite practical, and when hyper/reqwests async APIs land (they'll accept a generic Stream future.


chore: remove useless schematics vscode setting

The Angular Schematics extension does not support the "schematics" option anymore, probably due to monetization.
I removed it until an alternative is found.
AB#76390

There is probably more that needs to be changed/removed in this context. Search for cyrilletuzi.angular-schematics.

The functionality to work with our project specific schematics is available up to version 5.1.5. You can install a specific version of an extension by selecting "Install Another Version..." from the "Uninstall" selection button.


Challenge : "Nest Many Elements within a Single Div Element" has an issue

Issue Description

The first challenge on this page reads "Nest your p element inside your div element."
Should ask user to put div around both p elements as it wont let you proceed

Browser Information

Chrome, 49
Win 7

@metedagsuyu Please follow our guidelines that were mentioned in the issue template while reporting issues. The more clear info you provide the better it is to solve the issue
Do you mean that this is confusing?

@raisedadead Hello, I found it to be slightly confusing. It should read
"Nest your p elemets
inside you div element".

@metedagsuyu Agreed and thanks.
For anyone looking towards fixing this the first test case reads:

Nest your p element inside your div element.

this should be changed to

Nest your p elements inside your div element.

Making it plural.

@raisedadead Thank you for helping me out on this issue. I have learned a few more helpful solutions. I understand its nothing major, but I wanted to contribute by giving a try. :+1:


fix package relative path

Fixes
The adaptive expression library was not passing through babel .
Description
Fix the relative path of all libraries for it to be compiled with babel.
Testing
Tested with adaptive card library by replacing the minfied bundle

@stevengum , @joshgummersall Can you please review this ?

Pull Request Test Coverage Report for Build 380639212

0 of 0   changed or added relevant lines in 0 files are covered.
4 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.02%) to 84.728%

Files with Coverage Reduction
New Missed Lines
%

libraries/adaptive-expressions/src/triggerTrees/node.ts
2
90.51%

libraries/adaptive-expressions/src/triggerTrees/trigger.ts
2
62.21%

Totals

Change from base Build 380166669:
-0.02%

Covered Lines:
17338

Relevant Lines:
19539

💛  - Coveralls

See https://github.com/microsoft/botbuilder-js/pull/3090 for the require.resolve technique.