[$250] Chat - Phone number mention in edit comment shows @expensify.sms

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.65-5
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail: https://expensify.testrail.io/index.php?/tests/view/4506240
Logs: https://stackoverflow.com/c/expensify/questions/4856
Issue reported by: Applause_internal team
Action Performed:

Go to staging.new.expensify.com
Go to chat.
Send a phone number mention.
Right click on the message > Edit comment.

Expected Result:
Phone number mention in edit comment will not show @expensify.sms.
Actual Result:
Phone number mention in edit comment shows @expensify.sms.
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/eb84ad8d-fd97-46ae-9297-08ba6d1cef0e

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

Upwork Job URL: https://www.upwork.com/jobs/~01f67e599996d40e27
Upwork Job ID:<PHONE_NUMBER>906913280
Last Price Increase: 2024-05-21

We think this issue might be related to the #vip-vsb.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Chat - Phone number mention in edit comment shows @expensify.sms
What is the root cause of that problem?
When a phone number is submitted or tagged, the ReportUtils.buildOptimisticAddCommentReportAction function is called here, Within this function, the getParsedComment function is invoked. Afterwards, the addDomainToShortMention function is called. This function checks whether the provided number is valid or not and then appends the @expensify.sms domain to it. Finally, the updated information is formatted in Parse Format to Onyx.
What changes do you think we should make in order to solve the problem?
You need to verify if the parsed message adheres to a valid phone number format. If it meets the criteria for a phone number, you should eliminate the @expensify.sms domain during editing. Please update the provided code accordingly here.
let message = parser.htmlToMarkdown(getActionHtml(reportAction));
const lastContentAfterAt = message.substring(message.lastIndexOf("@"));
if(lastContentAfterAt == CONST.SMS.DOMAIN) {
    const beforeLastAt = message.substring(0, message.lastIndexOf("@"));
    message = beforeLastAt;
}

Report.saveReportActionDraft(reportID, reportAction, message);

Video

https://app.screencastify.com/v3/watch/J0jFdmbffkxugYfgIxF2

@ahmedGaber93 proposal above to take a look at

Reviewing today

Still waiting for better proposals

@ahmedGaber93 can you please help me learn the issue you are expecting in my proposal?

@kaushiktd Thanks for the proposal.
Your root cause is incomplete, you talk about optimistic data, but this issue also happened with the real data, if you try to prevent adding @expensify.sms to the optimistic data, you will still able to reproduce the issue after the API request done and back with the real data.
Feel free to update your proposal if you have any updates.

Thanks for your insights @ahmedGaber93.

Or, you need to update with expensify-common. If it replaces without @expensify.sms, it will update to optimistic data and will not be reproduced after the API request.

@kaushiktd Can you explain with code how you will do this?

please open a new issue on expensify-common.

@kaushiktd if this issue fix require changes in expensify-common, you can disscus it here in this issue as a part of your proposal.

@ra-md Thanks for the proposal.
we use htmlToMarkdown in many places, and removing SMSDomain in every where we use it seems weird.

@ahmedGaber93 I haven't tested with the exact code from the expensify-common repository because it's added as a dependency, and I can't update any code in expensify-common. However, I've identified that the root cause is generating from the parser called from the expensify-common repository. So either you can remove @expensify.sms when edit the comment, mention here or can modify to expensify-common repo.

I can't update any code in expensify-common. However, I've identified that the root cause is generating from the parser called from the expensify-common repository.

@kaushiktd you can edit the package under node_modules folder, or download it locally and test it.

@ahmedGaber93 I've checked with expensify-common. Now it will return same as expected like below:
<mention-user>@+917016113634</mention-user>

But API endpoint of AddComment returns response like Auth CreateReportAction returned an error.
So just I want to know that @expensify.sms domain is also validating on BE or not when submit comment.

I've checked with expensify-common. Now it will return same as expected like below:

@kaushiktd how can I evaluate your fix without sharing your code changes? Please share your code changes 🙏

@ahmedGaber93 I've remove phoneRegex test condition from here. It will return expected result But API endpoint of AddComment returns response like Auth CreateReportAction returned an error. Please check attached screen record.

Video

https://app.screencastify.com/v3/watch/2w8niD46NQqsptGqsg7c

@kaushiktd @expensify.smsprefix is important to BE, but it should be hidden for the end user.
Your change here will completely remove @expensify.sms form mention in BE and FE. We need only to hide it from user while editing in FE.

@ahmedGaber93 Then solution mention in my proposal will solve the issue. It will only hide or remove while editing in FE. Check with below code:
let message = parser.htmlToMarkdown(getActionHtml(reportAction));
const lastContentAfterAt = message.substring(message.lastIndexOf("@"));
if(lastContentAfterAt == CONST.SMS.DOMAIN) {
    const beforeLastAt = message.substring(0, message.lastIndexOf("@"));
    message = beforeLastAt;
}

Report.saveReportActionDraft(reportID, reportAction, message);

@ahmedGaber93 Thank you for your feedback.
In my opinion, we don't need to remove SMSDomain every time we use htmlToMarkdown, as we only need to remove SMSDomain in the mention/edit comment section.
I've tweaked my proposal and also added alternatives.
proposal updated

In my opinion, we don't need to remove SMSDomain every time we use htmlToMarkdown, as we only need to remove SMSDomain in the mention/edit comment section.

@ra-md we use markdown input in other places beside composer, like room description and task description. Call removeSMSDomain everywhere seem weird and should be last option, instead we need to edit htmlToMarkdown itself.
https://github.com/Expensify/App/assets/41129870/286fc055-4745-42bc-a47f-5303fcd2fe4f

You mean this one, right? htmlToMarkdownRules
I think we can exclude the SMS domain there.
{
               name: 'excludeSMSDomain',
               regex: /@expensify\.sms/gi,replacement: '',
},

@ra-md we already have rule for mention user, can you edit it instead of create new rule.

@ra-md this a known issue and will fix here https://github.com/Expensify/App/pull/41666 & https://github.com/Expensify/expensify-common/commit/f3ab6c14521742df4bfeaa223a450483c82ebe3a
and reproduced in staging
https://github.com/Expensify/App/assets/41129870/ce9a72f5-6dcf-4630-af9b-ae7c4326554c

regex: new RegExp(`<mention-user(?:\s+accountID="(\d+)">.*?<\/mention-user>|\s*>(@${Constants.CONST.REG_EXP.PHONE_PART})@expensify\.sms<\/mention-user>)`, 'gi'),

@ra-md This regexp not work with me, if you find the correct one, please update your proposal.

Asking for more proposals in slack as we haven't any updates for 4 days ago. https://expensify.slack.com/archives/C01GTK53T8Q/p1715704931105239

Waiting on proposals

Waiting on proposals

Waiting on proposals

Asking for more proposals in slack https://expensify.slack.com/archives/C01GTK53T8Q/p1716404133710969

Proposal
Please re-state the problem that we are trying to solve in this issue.
Phone number mention in edit comment shows @expensify.sms.
What is the root cause of that problem?
In this block https://github.com/Expensify/expensify-common/blob/84ac0394ab1021d3d892338c4dbb3f87c05b0bc9/lib/ExpensiMark.js#L479, it seems that when showing the mention, the app is not removing the @expensify.sms.
Also in offline mode, the mention format is different (it will be like <mention-user>@+123456789@expensify.sms</mention-user>), the app doesn't have a rule to parse it yet so it will just replace the HTML and it becomes<EMAIL_ADDRESS>What changes do you think we should make in order to solve the problem?

The method that can be used to remove the SMS is Str.removeSMSDomain
For optimisitic mention case in offline mode, I will add the below rule below this
{
    name: 'optimisticUserMention',
    regex: /<mention-user>(.*?)<\/mention-user>/gi,
    replacement: (match, g1, offset, string, extras) => {
        return Str.removeSMSDomain(g1);
    },
},

For normal user mention, it will be caught by the rule userMention, I will modify this part so that it replaces the SMS domain using Str.removeSMSDomain
What alternative solutions did you explore? (Optional)
NA

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

Hey! I’m Jakub Szymczak from Software Mansion, an expert agency, and I’d like to work on this issue!

hey @SzymczakJ I think there're proposals above that will be reviewed first

Reviewing today

@truph01 Thanks for the proposal.
I am lean to edit the current rule userMention to include both cases email-based mention and accountID-based mention instead of creating a new rule as I mentioned before here https://github.com/Expensify/App/issues/40969#issuecomment-2103251075
as there is no accepted proposal yet, and @SzymczakJ from Software Mansion would like to work on this issue, we can assign @SzymczakJ
🎀 👀 🎀 C+ reviewed.

@ahmedGaber93 Can you help me learn the issue in my proposal?

I am lean to edit the current rule userMention to include both cases email-based mention and accountID-based mention instead of creating a new rule

Hi @ahmedGaber93 the creation of new rule is just to make it clearer. If you want to combine it it's a no-brainer, it just needs to be updated similar to the following
{
    name: 'userMention',
    regex: /(?:<mention-user accountID="(\d+)" *\/>)|(?:<mention-user>(.*?)<\/mention-user>)/gi,
    replacement: (match, g1, g2, offset, string, extras) => {
        if (g1) {
            const accountToNameMap = extras.accountIdToName;
            if (!accountToNameMap || !accountToNameMap[g1]) {
                Log.alert('[ExpensiMark] Missing account name', {accountID: g1});
                return '@Hidden';
            }

            return<EMAIL_ADDRESS>        }

        return Str.removeSMSDomain(g2);
    },
},

@muttmuure Can we hold on the assignment here a bit because I think my proposal is good enough to solve the issue, the implementation detail @ahmedGaber93 wants is straight forward and I've provided here

@ahmedGaber93 Can you help me learn the issue in my proposal?

@kaushiktd We should find the root cause and fix it, instead tries to make code works.
Your proposal tries to remove @expensify.sms before editing, and this may make the code works, but the issue will still appear in other places that use htmlToMarkdown as you see in the video here https://github.com/Expensify/App/issues/40969#issuecomment-2102540643 because we don't fix the root cause by removing @expensify.sms once inside htmlToMarkdown not out of it.
Beside your condition if(lastContentAfterAt == CONST.SMS.DOMAIN) will fail if there is text after the mention<EMAIL_ADDRESS>text after because expensify.sms text after not equal CONST.SMS.DOMAIN, and not work fine if message have more than one mention

the implementation detail @ahmedGaber93 wants is straight forward and I've provided https://github.com/Expensify/App/issues/40969#issuecomment-2129613092

I think that's clear from the issue discussion and I expected you read it, it mentioned before here https://github.com/Expensify/App/issues/40969#issuecomment-2103251075 when we have a similar fix with a new rule, So your proposal seemed to me not much different from previous ones. And that make me accept Szymczakj's request from SWM to work on it.
@truph01 Unfortunately, the issue has been assigned now, but I will be happy to see your next contributions in other issues.

I think that's clear from the issue discussion and I expected you read it

@ahmedGaber93 I think if it's 1 rule or not doesn't matter too much as it can be easily combined, it's more like a preference.
Does my solution look good to you now after the update?

@truph01 Unfortunately, the issue has been assigned now

@SzymczakJ didn't start on this so there's no harm reassigning right? (assuming current solution proposed looks good), so we don't waste anyone's effort
@muttmuure What do you think?

Does https://github.com/Expensify/App/issues/40969#issuecomment-2129613092 look good to you now after the update?

If you update it before Szymczakj's request to work on this issue, I would have agreed to it with a small improvement. But Szymczakj's request came first, Therefore, he has the right to work on this.

@muttmuure @mallenexpensify What do you think about this case?
The PR by @SzymczakJ that ends up being merged, uses the exact code change suggested by me here (exact, not a single thing different). So it can be said that most of the effort that leads to the PR fixing this issue is from me.
Should I at least get a partial bounty for this?
Thanks

Stepping in to help out a bit...

Thanks @truph01 for the help.  It appears @ahmedGaber93 followed the process here, which is.. if the existing proposal isn't accepted, as-is, the C+ should assign to the agency-contributor.  What I should have done when asking for help on this issue is pinged @ahmedGaber93 to review your proposal before posting in the agency room in Slack (I posted the next day).  Apologies for not seeing your proposal.

For edge-case instances like this, I propose we wait til the PR has hit production for 7 days. At that point, if you believe you're due compensation because code in your proposal was used, post in here with specific details about the code and request payment of 25, 50 or 100% of the job price.  @muttmuure and/or I will review then take next steps.  That work for you @truph01 ?

Yup that works for me 💯
Thanks for helping here @mallenexpensify!

@SzymczakJ please let me know when PR is ready.

https://github.com/Expensify/expensify-common/pull/707 PR has actually got merged 😄
@truph01 PR helped me a lot and I think he deserves compensation!

https://github.com/Expensify/expensify-common/pull/707 PR has actually got merged 😄

Ok, we still need to open PR to update expensify-common version in Expensify/App

The expensify-common fix had been deployed to staging by this PR https://github.com/Expensify/App/pull/42387, we are now waiting for production deployment.

Can we get this retested and closed in case the bug was solved? 🙏🏻

For edge-case instances like this, I propose we wait til the PR has hit production for 7 days.

@mallenexpensify @muttmuure Hi, the PR was on prod for around a week now.

At that point, if you believe you're due compensation because code in your proposal was used, post in here with specific details about the code and request payment of 25, 50 or 100% of the job price.

For details, in the PR that was merged, it uses the exact code change suggested by me here, which is the detailed implementation of my proposal.
@SzymczakJ also confirmed

@truph01 proposal helped me a lot and I think he deserves compensation!

I think a compensation of 50% of the job price will be fair to me 🙏

Still happening for me on latest staging, web.  PR hit production a week ago too
https://github.com/Expensify/App/assets/22508304/2a39659c-50c9-461a-a7b9-006cae533abe

This case happened after changes by PR https://github.com/Expensify/App/pull/40565 (deployed to staging 3 days ago), and we not cover it in our PR.
@SzymczakJ I think we need to cover this case by remove sms domain also here

I'll put up a PR on it today

waiting on linked PR

PR was merged to expensify-common, tomorrow I'll try to bump it in App

@SzymczakJ We already have PR that will bump it in App ☝

nice!

PR #44262 still in review.

Issue is reproducible during KI retests.
https://github.com/Expensify/App/assets/43995119/a680cb15-0a73-4fc2-9eae-2795f28209ea

PR https://github.com/Expensify/App/pull/44262 is merged into main but not deployed to staging yet. Tested main locally and works well.

The above issue ☝ is related to another issue that fix with in the same PR https://github.com/Expensify/App/pull/44262 and not related to our PR

@muttmuure This issue was deployed to production 8 days ago. We can pay out and close it now.
Payment summary:

@ahmedGaber93 requires payment (C+)
@SzymczakJ does not require payment (Contractor)
@truph01 ask for split contributor bounty here

@muttmuure bump for payment.

Handling!

@ahmedGaber93 $250
@truph01 $125

@truph01 I've invited you to the job here: https://www.upwork.com/jobs/~0132841b006b8ee44f

@muttmuure I applied thanks

Invited

Paid


The rouge-L result is very low

I am working on a model of a text summary. For the output of the model, the test is performed using pyrouge. The test results show that the rouge-1 and rouge2 indicators are normal and consistent with the effect of the paper. However, the results of rouge-L differ greatly from the results of the paper. What is doubtful is how the rouge-L is calculated. What could be the cause of this?

HI, did you know the reason of low R-L?


Generate HTML with

I print HTML to PDF a lot, and have to set title mannually. Could you use the first h1 or first line to generate title?

development build


Add Podman relationship to readme, create container tools guide

Signed-off-by: TomSweeneyRedHat<EMAIL_ADDRESS>Add a small description to list how Podman/Buildah interact to the main README.md, once approved this will be added to the Podman readme too.  Also start the Containers Tool Guide with more details.

FWIW, I expect a few loops on this one.

LGTM
@ipbabble @fatherlinux PTAL

bot, retest this please

@fatherlinux @ipbabble @vrothberg @mheon @umohnani8 @pixdrift @boaz1337 PTAL

LGTM

@TomSweeneyRedHat Remove rm based on mheon comment and we can merge, then we can continue to fix it up in future PRs/

@rh-atomic-bot r+

I believe "someone" should be "somewhat" - very interesting comparison. I
am still noodling on it. I think it needs an example of each run command.
Best Regards
Scott M
El jue., 13 de sep. de 2018 15:22, Atomic Bot<EMAIL_ADDRESS>escribió:

Closed #1000 https://github.com/projectatomic/buildah/pull/1000 via
0596117
https://github.com/projectatomic/buildah/commit/05961173d7a34254fc7600a39512437ff74532b0
.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/projectatomic/buildah/pull/1000#event-1844465981, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAHLZfeIyfAzACAiBIocBdHrmBo5JqZxks5uarBggaJpZM4WjL8w
.


cask/installer: Add Cask caveats to the end-of-operation summary

[x] Have you followed the guidelines in our Contributing document?
[x] Have you checked to ensure there aren't other open Pull Requests for the same change?
[x] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your changes? Here's an example.

[x] Have you successfully run brew typecheck with your changes locally?
[x] Have you successfully run brew tests with your changes locally?

Both formulae and casks can have caveats, but only formulae caveats were shown at the end of a bulk install/upgrade/reinstall operation via Homebrew.messages.record_caveats. This fixes that to show Cask caveats too, for consistency (scrolling up all of the multi-formulae-and-casks output to see caveats is time-consuming and users might miss them).
In doing this I had to change how Messages#record_caveats works since the cask name is just a string, not an object. For consistency with formulae names displayed in caveats, downcase the cask name too (since users type it lowercase, usually - example: macfuse which without the .downcase appears as "macFUSE").
Fixes #11421.

Before:
➜ brew install macfuse kube-linter gh
==> Caveats
You must reboot for the installation of macfuse to take effect.

==> Downloading https://github.com/osxfuse/osxfuse/releases/download/macfuse-4.1.2/macfuse-4.1.2.dmg
Already downloaded: /Users/issyl0/Library/Caches/Homebrew/downloads/9a9c1e4033ad7046b2404c776abebd5bb9bfb54169236eea695d82fd92b32f0d--macfuse-4.1.2.dmg
==> Installing Cask macfuse
==> Running installer for macfuse; your password may be necessary.
Package installers may write to any location; options such as `--appdir` are ignored.
installer: Package name is macFUSE
installer: Installing at base path /
installer: The install was successful.
==> Changing ownership of paths required by macfuse; your password may be necessary.
🍺  macfuse was successfully installed!
==> Downloading https://ghcr.io/v2/homebrew/core/kube-linter/manifests/0.2.2
Already downloaded: /Users/issyl0/Library/Caches/Homebrew/downloads/7cbabba966f12048003fb1882bf5a6ace1b25902ebe86e8f049a3dfb6aad37d9--kube-linter-0.2.2.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/kube-linter/blobs/sha256:831b22931fea72de98b288d96f2ff9c13ad078a88ab2600748434dbd7b8dfd65
Already downloaded: /Users/issyl0/Library/Caches/Homebrew/downloads/23466b6dae061ee7c1a1ecced21c2ecede51f364599549e766a32a5838cca98b--kube-linter--0.2.2.big_sur.bottle.tar.gz
==> Pouring kube-linter--0.2.2.big_sur.bottle.tar.gz
🍺  /usr/local/Cellar/kube-linter/0.2.2: 5 files, 34.8MB
==> Downloading https://ghcr.io/v2/homebrew/core/gh/manifests/1.11.0
Already downloaded: /Users/issyl0/Library/Caches/Homebrew/downloads/ddad4ddc988804cf6037325a229259e1d5267e9203e69cf901f3e97c93395f7a--gh-1.11.0.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/gh/blobs/sha256:34313bfaca6995d40836da15f3c1cf7579689f5ac1bdcf3e2e4e50ceb4cbb3e1
Already downloaded: /Users/issyl0/Library/Caches/Homebrew/downloads/1eb3f40cf6fa82560f54b235fdedb761b36170a5b9d5c26b58be3d3b9afcb89b--gh--1.11.0.big_sur.bottle.tar.gz
==> Pouring gh--1.11.0.big_sur.bottle.tar.gz
==> Caveats
zsh completions have been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/gh/1.11.0: 89 files, 28.6MB
==> Caveats
==> gh
zsh completions have been installed to:
  /usr/local/share/zsh/site-functions

After
➜ brew install macfuse kube-linter gh
==> Caveats
You must reboot for the installation of macfuse to take effect.

==> Downloading https://github.com/osxfuse/osxfuse/releases/download/macfuse-4.1.2/macfuse-4.1.2.dmg
Already downloaded: /Users/issyl0/Library/Caches/Homebrew/downloads/9a9c1e4033ad7046b2404c776abebd5bb9bfb54169236eea695d82fd92b32f0d--macfuse-4.1.2.dmg
==> Installing Cask macfuse
==> Running installer for macfuse; your password may be necessary.
Package installers may write to any location; options such as `--appdir` are ignored.
installer: Package name is macFUSE
installer: Installing at base path /
installer: The install was successful.
==> Changing ownership of paths required by macfuse; your password may be necessary.
🍺  macfuse was successfully installed!
==> Downloading https://ghcr.io/v2/homebrew/core/kube-linter/manifests/0.2.2
Already downloaded: /Users/issyl0/Library/Caches/Homebrew/downloads/7cbabba966f12048003fb1882bf5a6ace1b25902ebe86e8f049a3dfb6aad37d9--kube-linter-0.2.2.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/kube-linter/blobs/sha256:831b22931fea72de98b288d96f2ff9c13ad078a88ab2600748434dbd7b8dfd65
Already downloaded: /Users/issyl0/Library/Caches/Homebrew/downloads/23466b6dae061ee7c1a1ecced21c2ecede51f364599549e766a32a5838cca98b--kube-linter--0.2.2.big_sur.bottle.tar.gz
==> Pouring kube-linter--0.2.2.big_sur.bottle.tar.gz
🍺  /usr/local/Cellar/kube-linter/0.2.2: 5 files, 34.8MB
==> Downloading https://ghcr.io/v2/homebrew/core/gh/manifests/1.11.0
Already downloaded: /Users/issyl0/Library/Caches/Homebrew/downloads/ddad4ddc988804cf6037325a229259e1d5267e9203e69cf901f3e97c93395f7a--gh-1.11.0.bottle_manifest.json
==> Downloading https://ghcr.io/v2/homebrew/core/gh/blobs/sha256:34313bfaca6995d40836da15f3c1cf7579689f5ac1bdcf3e2e4e50ceb4cbb3e1
Already downloaded: /Users/issyl0/Library/Caches/Homebrew/downloads/1eb3f40cf6fa82560f54b235fdedb761b36170a5b9d5c26b58be3d3b9afcb89b--gh--1.11.0.big_sur.bottle.tar.gz
==> Pouring gh--1.11.0.big_sur.bottle.tar.gz
==> Caveats
zsh completions have been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/gh/1.11.0: 89 files, 28.6MB
==> Caveats
==> macfuse
You must reboot for the installation of macfuse to take effect.
==> gh
zsh completions have been installed to:
  /usr/local/share/zsh/site-functions

Review period will end on 2021-06-09 at 22:57:30 UTC.

Review period ended.


App losing com with softener only when integration is enabled

If I have the integration enabled, the app will no longer see the softener and HA can't pull any data. It takes half a day or a day before it happens. For the first week or so it did it every day. I disabled the integration for the past 3 days and the app is working fine.

If I have the integration enabled, the app will no longer see the softener and HA can't pull any data. It takes half a day or a day before it happens. For the first week or so it did it every day. I disabled the integration for the past 3 days and the app is working fine.

What do you mean by "app" - mobile application? So either mobile app can work, or HA integration, but not both ? I also have some problems recently, wondering what can be cause.

Hold on. You mean Iqua APP doesnt see Your softener right?
It's because Your HA refreshes every 5 minutes new informations from Iqua servers which are not used to work  with such viewing frequency. ;)

Hold on. You mean Iqua APP doesnt see Your softener right? It's because Your HA refreshes every 5 minutes new informations from Iqua servers which are not used to work with such viewing frequency. ;)

Correct, and when this happens HA also no longer work until I disable HA. Any work around?

You don't need to disable Your HA Softener plugin.
All You have to do is to open and editrefresh frequency in homeassistant\custom_components\iqua_softener\softener.py
row number 41 - UPDATE_INTERVAL = timedelta(minutes=10) (by default it is set to 5 minutes (which is too fast).

You don't need to disable Your HA Softener plugin. All You have to do is to open and editrefresh frequency in homeassistant\custom_components\iqua_softener\sensor.py row number 41 - UPDATE_INTERVAL = timedelta(minutes=10) (by default it is set to 5 minutes (which is too fast).

Sounds good, thanks, will try it.


modify lstm ouput for aggregated model

Using the h value of the lstm top layer as the input for aggregated model is better, and easier to converge.

Train log:
INFO:tensorflow:/job:master/task:0: training step 218206| Hit@1: 0.87 PERR: 0.72 GAP: 0.81 Loss: 5.09105
INFO:tensorflow:/job:master/task:0: training step 218207| Hit@1: 0.85 PERR: 0.73 GAP: 0.81 Loss: 5.16746
INFO:tensorflow:/job:master/task:0: training step 218208| Hit@1: 0.79 PERR: 0.68 GAP: 0.80 Loss: 5.13253
INFO:tensorflow:/job:master/task:0: training step 218209| Hit@1: 0.90 PERR: 0.76 GAP: 0.82 Loss: 5.16415
INFO:tensorflow:/job:master/task:0: training step 218210| Hit@1: 0.88 PERR: 0.76 GAP: 0.80 Loss: 5.36496
INFO:tensorflow:/job:master/task:0: training step 218211| Hit@1: 0.83 PERR: 0.72 GAP: 0.82 Loss: 4.48507
INFO:tensorflow:/job:master/task:0: training step 218212| Hit@1: 0.85 PERR: 0.71 GAP: 0.83 Loss: 4.91971

Eval on frame level validation set,
Avg_Hit@1: 0.838 | Avg_PERR: 0.705 | MAP: 0.367 | GAP: 0.780 | Avg_Loss: 5.795533

The following are the training status
The orange curves:  original code using all concatenated state.
The blue curves: modified code using top layer h state.

Thanks! I've wanted to investigate this for a while.

Hi, what is the base_learning_rate and num_moe_experts in video_level_models?


Update from Release Candidate

Thanks! This was handled as part of https://github.com/dotnet-presentations/blazor-workshop/pull/264.


:sparkles:  Add a demo link to the readme (#102)

Hi @LucasProcopio,
Thanks for your contribution, this seems to be great work. I'll do a review ASAP

Thanks for your time!
@all-contributors please add @LucasProcopio for code


allow setting the authority_host with TokenCredentialOptions

This ports support for setting an authority_host, so another Azure Cloud instance can be used. I ported code from:

https://github.com/Azure/azure-sdk-for-js/blob/master/sdk/identity/identity/src/constants.ts
https://github.com/Azure/azure-sdk-for-js/blob/master/sdk/identity/identity/src/credentials/clientSecretCredential.ts

links

Azure SDK: What’s new in the Azure Identity August 2020 General Availability Release
https://devblogs.microsoft.com/azure-sdk/azure-identity-august-2020-ga/
https://www.npmjs.com/package/@azure/identity
https://github.com/Azure/azure-sdk-for-js/blob/master/sdk/identity/identity

Thanks for the feedback. I addressed the concerns in dce2d25. Please approve this & the other PR.

This is waiting on @MindFlavor's re-review.


Autocompletion: Keep get_node values which are compatible with type hint

Fixes #92219
If the node behind the literal has the same type that is annotated the type will now still be handled by _get_subscript_type which means that the value on the type is set and argument options completion is possible again.

Thanks!


[HaveIBeenPwnedBridge] Display breach type

This pull request adds breachType() which extracts and returns the data breach type(s) (sensitive, unverified,  etc) for each data breach.

Looks good to me. Thanks for the PR! :+1:


Support V5.6.3

There is a new version of Swift: 5.6.3

https://github.com/apple/swift/releases/tag/swift-5.6.3-RELEASE

Can you support it please?

Swift 5.6.3 Docker Image has not yet been released. I will support it when it is released.

Released 5.6.3 and 5.7


Quit Error on Large JSON file

What system are you running Yazi on?
Linux Wayland
What terminal are you running Yazi in?
(both tested) kitty 0.30.1 and foot version: 1.16.2 +pgo +ime +graphemes -assertions
Yazi version
0.1.5.r18.g2b73174-1
Did you try the latest main branch to see if the problem has already been fixed?
Tried, but the problem is still present
Describe the bug
yazi on one folder with contains a large json file Firefox 2023-10-31 14.30 profile.json ( 18Mb). The other attribution of the file:
❯ file ./Firefox\ 2023-10-31\ 14.30\ profile.json
./Firefox 2023-10-31 14.30 profile.json: Unicode text, UTF-8 text, with very long lines (65534), with no line terminators

The bug happens(not immediately) when the cursor pass the position of  file Firefox 2023-10-31 14.30 profile.json (i.e preview). It works normal when I'm still in yazi (though cpu usage increases many) The problem is that though I can quit the TUI of yazi,  I cannot fully quit yazi, which means the program is stuck after I quit, and I cannot go back to my shell. I need to close the window of the terminal emulator that runs yazi. However, yazi is still not killed, I need to manually pkill -9 yazi to kill yazi.
Expected Behavior

don't preview or preview first N characters of the json file.
normal quit behavior

To Reproduce
To get the required JSON file:
open firefox, open web developer tools, in the performance tab, record few seconds, and download the performance analysis file (top right corner -> upload local profile -> download.
Since the JSON file may contain sensitive data, I will not share my file.
Configuration
no config
Anything else?
No response

Ugh, that's quite unfortunate -- the highlighter works on a line-by-line basis.
In the case of this JSON file, it contains all the content on a single line, which would be a nightmare for all highlighters. Hence the best approach is to fallback to plain text in this situation, which is also the behavior of most editors.
I've created a PR to address this, let me know if it works for you. https://github.com/sxyazi/yazi/pull/329


fix(autocomplete): Fix long task names overlapping in project dropdown

Please remember the Contributing Guidelines :heart:
:star2: What does this PR do?

Stop long task names from wrapping and overlapping other content in the projects dropdown
:bug: Recommendations for testing
Have some tasks with very long names, check that they don't overlap each other anymore in the projects dropdown.

:memo: Links to relevant issues or information

Fixes #1667.

I agree, note that this PR is for tasks though (inside projects dropdown), so you might not have tested the right thing 😅


Error Extracting uploader id

Checklist

[ ] I'm reporting a broken site support issue
[ ] I've verified that I'm running youtube-dl version 2021.12.17
[ ] I've checked that all provided URLs are alive and playable in a browser
[ ] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[ ] I've searched the bugtracker for similar bug reports including closed ones
[ ] I've read bugs section in FAQ

Verbose log

PASTE VERBOSE LOG HERE

Description

WRITE DESCRIPTION HERE

Y'all, go /youtube_dl/extractor/common.py.
Line 983, change: fatal=True to fatal=False

#30839


Incompatible with latest IDEA build

Plugin version: 1.0.1
The plugin reports "Incompatible: requires IDE build 213.* or earlier"

This has now been updated. It can take up to two business days to be available on the jetbrains marketplace.


Index.ts Cannot Export (Find) Image.astro or Picture.astro

What version of astro are you using?
2.0
Are you using an SSR adapter? If so, which one?
None
What package manager are you using?
nmp, pnmp, npx
What operating system are you using?
Mac
What browser are you using?
Chrome, Safari
Describe the Bug
Hello!
(I am fairly new to Astro, so I apologize in advance if one of my responses doesn't make sense).
The issue is occurring in index.ts under the /components/ folder.
I receive the following errors:
Cannot find module './Image.astro' or its corresponding type declarations.ts(2307)
Cannot find module './Picture.astro' or its corresponding type declarations.ts(2307)
It's affecting my Blog Layout when I try to enter the width and height dimensions (see picture below).
I've checked to make sure all the paths are correct (and they are). I've also tried to reinstall @astrojs/image and still no luck.

Thank you for your support!
Link to Minimal Reproducible Example
https://stackblitz.com/edit/withastro-astro-zetqna?file=src/layouts/BlogPostLayout.astro
Participation

[X] I am willing to submit a pull request for this issue.

That is what I was referring to, yes! It probably doesn't work well inside files in node_modules, TypeScript plugins are not too good at that.
Like I said this error is not causing the second error you posted, it's just asking you to do width={300} instead of width="300". You can safely ignore the error happening in that index.ts.

@Princesseuh -- Thank you so much! I'll try that fix later in the day and get back to you. If all is well, I'll close the thread.

Thank you, when I changed the syntax, it worked. I didn't change anything in the index.ts -- so we are good to go!
Appreciate you!


[WIP] SEC-70 - Gamma users shouldn't be able to create roles

SUMMARY

Currently users with gamma roles are still able to create roles when FAB_ADD_SECURITY_API = True, This PR is made to fix this security issue as well as add test. Reason why this is happening is due to the instantiation of the ModelRestAPI classes happening here https://github.com/dpgaspar/Flask-AppBuilder/blob/2d527aae09eed50fd52c6bf886a2970adb225428/flask_appbuilder/security/sqla/manager.py#L97
To fix it I've overriding the register_view call in manager and moving the logic to superset/initialization file. Then adding our own custom logic to only allow admin to make these request
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
# logged in as GAMMA
$ curl "http://<IP_ADDRESS>:9000/api/v1/security/roles/" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "name": "new_role"
}'
>> 201

$ curl "http://<IP_ADDRESS>:9000/api/v1/security/roles/" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d $'{
  "name": "new_role"
}'
>> 403

TESTING INSTRUCTIONS

Configure SuperSet to use DB authentication and set FAB_ADD_SECURITY_API = True
Initialize SuperSet; be sure to add an administrator
Launch SuperSet
Browse to SuperSet
Log in as the administrator
Add a new user and grant them only the Gamma role
Log out
Log in as the new user
Browse to the swagger endpoint (/swagger/v1)
Find Security Roles
Expand POST /api/v1/security/roles
Click Try It Out
In the Model schema area provide a name for a new role
Click Execute

ADDITIONAL INFORMATION

[X] Has associated issue: SEC-70
[X] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

@dpgaspar let me know if this pattern make sense or do you have another suggestion of either overriding the view registration, or adding security checks on the indy endpoints


Update ESP32SJA1000.cpp

Support for ESP32 library 2.x
Updating to use latest stable interrupt allocation header.
https://github.com/espressif/esp-idf/blob/f8bda32/components/esp32/include/esp_intr_alloc.h

ESP32 support in this library is broken. Also, native CAN has been separated and is now supported by this library:
https://github.com/adafruit/Adafruit_CAN
There's currently no ESP32 support there. But when it does become available, that's where it will be.
This library is being deprecated.


Change async stubbing to use thenAnswer.

Mockito now prohibits calling thenReturn with Futures and Streams. dart-lang/mockito#79

We have to do a pub release for mockito. It's going to be a 3.0 alpha release. I'll update the pull request with that shortly.

Please make sure you did the pubspec.yaml fixes by running flutter update-packages --force-upgrade, not by hand. Thanks.

Hey @Hixie. Ted did a new release of Mockito. It's an alpha release. When I run that command, it updates it to the latest stable release, not alpha release.
Is there anything I can do to update the deps to the alpha release? I just don't want anyone to cause an accidental breakage in the future.

It probably means some other package we depend on depends on a range that doesn't include the new version.

Ok, I'll just revert the dep change then. Thanks.

Rather than _, can you give the type and name of the argument for these callbacks? That will make it easier to understand the code later (when someone looks at the code and wonders what the argument is...).
Other than that, LGTM.

Done. Thank you.

The lint checks seem to require specifying a type for function expressions. I'm not sure why since this is against Effective Dart (https://www.dartlang.org/guides/language/effective-dart/design#avoid-annotating-types-on-function-expressions). I guess the Flutter style guide is different?
@Hixie How strongly do you feel about ""? I think reading "Invocation invocation" on each of these is overkill. It looks like there were several calls to thenAnswer with "" already.

Flutter's codebase is intended to be fully typed, so that we don't rely on inference or dynamic. It has frequently helped us catch bugs.
I prefer to have the argument be explicit (in type and in name, so that I can see what it is, and what it means), because otherwise whenever I read this code I'm going to think, "ooh, an argument, I wonder what that is" and have to go look it up instead of just being able to see it.
If you only provide the type (.thenAnswer(Invocation _)) then I'll wonder what the argument is supposed to mean ("is it the "before" invocation? Is it the "answer" of "thenAnswer"? etc). If you only provide the name (.thenAnswer(invocation)) then I'll wonder what the type of the argument is. Is it a string? Is it an Invocation? Is it some custom object that is special for "thenAnswer"?

Got it, thanks for the explanation. I'll update the pull request soon.
Alan
On Fri, Dec 15, 2017, 6:39 PM Ian Hickson<EMAIL_ADDRESS>wrote:

Flutter's codebase is intended to be fully typed, so that we don't rely on
inference or dynamic. It has frequently helped us catch bugs.
I prefer to have the argument be explicit (in type and in name, so that I
can see what it is, and what it means), because otherwise whenever I read
this code I'm going to think, "ooh, an argument, I wonder what that is" and
have to go look it up instead of just being able to see it.
If you only provide the type (.thenAnswer(Invocation _)) then I'll wonder
what the argument is supposed to mean ("is it the "before" invocation? Is
it the "answer" of "thenAnswer"? etc). If you only provide the name (
.thenAnswer(invocation)) then I'll wonder what the type of the argument
is. Is it a string? Is it an Invocation? Is it some custom object that is
special for "thenAnswer"?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/pull/13521#issuecomment-352155010,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACH0ZyG7pfYAVZy8ZCt7DdvV3RHiOLcAks5tAy1tgaJpZM4Q_kUO
.

@Hixie friendly ping. Would love to get this merged and pulled into g3 ASAP.

Thanks!


TrendyQC v1.0.0rc

This change is

Hello @Yu-jinKim! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file trendyqc/trend_monitoring/admin.py:

Line 1:33: W292 no newline at end of file

In the file trendyqc/trend_monitoring/apps.py:

Line 6:30: W292 no newline at end of file

In the file trendyqc/trend_monitoring/backend_utils/plot.py:

Line 148:80: E501 line too long (83 > 79 characters)
Line 155:80: E501 line too long (81 > 79 characters)
Line 275:80: E501 line too long (179 > 79 characters)
Line 277:80: E501 line too long (179 > 79 characters)
Line 278:80: E501 line too long (179 > 79 characters)
Line 279:80: E501 line too long (179 > 79 characters)
Line 280:80: E501 line too long (179 > 79 characters)
Line 407:80: E501 line too long (90 > 79 characters)

In the file trendyqc/trend_monitoring/forms.py:

Line 61:80: E501 line too long (96 > 79 characters)
Line 107:80: E501 line too long (96 > 79 characters)
Line 143:80: E501 line too long (85 > 79 characters)

In the file trendyqc/trend_monitoring/management/commands/add_projects.py:

Line 31:80: E501 line too long (142 > 79 characters)

In the file trendyqc/trend_monitoring/management/commands/utils/_multiqc.py:

Line 63:80: E501 line too long (84 > 79 characters)
Line 171:80: E501 line too long (81 > 79 characters)
Line 262:80: E501 line too long (84 > 79 characters)
Line 373:80: E501 line too long (81 > 79 characters)
Line 401:80: E501 line too long (81 > 79 characters)
Line 408:80: E501 line too long (81 > 79 characters)
Line 412:80: E501 line too long (81 > 79 characters)
Line 471:80: E501 line too long (82 > 79 characters)
Line 516:80: E501 line too long (96 > 79 characters)
Line 542:80: E501 line too long (92 > 79 characters)

In the file trendyqc/trend_monitoring/management/commands/utils/_tool.py:

Line 19:80: E501 line too long (82 > 79 characters)
Line 33:80: E501 line too long (82 > 79 characters)

In the file trendyqc/trend_monitoring/models/__init__.py:

Line 38:2: W292 no newline at end of file

In the file trendyqc/trend_monitoring/models/bam_qc.py:

Line 60:80: E501 line too long (91 > 79 characters)
Line 61:80: E501 line too long (91 > 79 characters)

In the file trendyqc/trend_monitoring/tables.py:

Line 72:80: E501 line too long (132 > 79 characters)
Line 79:37: W291 trailing whitespace
Line 81:80: E501 line too long (140 > 79 characters)

In the file trendyqc/trend_monitoring/tests/custom_tests.py:

Line 31:80: E501 line too long (81 > 79 characters)

In the file trendyqc/trend_monitoring/tests/test_integration.py:

Line 18:80: E501 line too long (110 > 79 characters)
Line 20:80: E501 line too long (168 > 79 characters)
Line 40:80: E501 line too long (89 > 79 characters)

In the file trendyqc/trend_monitoring/tests/test_multiqc.py:

Line 114:80: E501 line too long (89 > 79 characters)
Line 183:80: E501 line too long (93 > 79 characters)
Line 651:80: E501 line too long (85 > 79 characters)
Line 655:80: E501 line too long (85 > 79 characters)
Line 713:80: E501 line too long (89 > 79 characters)
Line 811:80: E501 line too long (114 > 79 characters)

In the file trendyqc/trend_monitoring/tests/test_plotting.py:

Line 37:80: E501 line too long (93 > 79 characters)
Line 67:80: E501 line too long (93 > 79 characters)
Line 133:80: E501 line too long (97 > 79 characters)
Line 136:80: E501 line too long (82 > 79 characters)
Line 502:80: E501 line too long (80 > 79 characters)
Line 503:80: E501 line too long (80 > 79 characters)
Line 504:80: E501 line too long (80 > 79 characters)
Line 607:80: E501 line too long (81 > 79 characters)
Line 608:80: E501 line too long (109 > 79 characters)
Line 610:80: E501 line too long (89 > 79 characters)
Line 679:80: E501 line too long (85 > 79 characters)
Line 680:80: E501 line too long (95 > 79 characters)
Line 681:80: E501 line too long (128 > 79 characters)
Line 683:80: E501 line too long (103 > 79 characters)
Line 684:80: E501 line too long (96 > 79 characters)
Line 685:80: E501 line too long (96 > 79 characters)
Line 954:80: E501 line too long (90 > 79 characters)

In the file trendyqc/trend_monitoring/tests/test_tool.py:

Line 27:68: W291 trailing whitespace

In the file trendyqc/trend_monitoring/urls.py:

Line 12:2: W292 no newline at end of file

In the file trendyqc/trend_monitoring/views.py:

Line 52:80: E501 line too long (80 > 79 characters)
Line 60:80: E501 line too long (113 > 79 characters)

In the file trendyqc/trendyqc/settings.py:

Line 39:80: E501 line too long (83 > 79 characters)
Line 71:80: E501 line too long (98 > 79 characters)
Line 166:80: E501 line too long (91 > 79 characters)
Line 169:80: E501 line too long (81 > 79 characters)
Line 172:80: E501 line too long (82 > 79 characters)
Line 175:80: E501 line too long (83 > 79 characters)
Line 236:80: E501 line too long (88 > 79 characters)
Line 304:45: E261 at least two spaces before inline comment
Line 304:80: E501 line too long (89 > 79 characters)
Line 306:80: E501 line too long (94 > 79 characters)

In the file trendyqc/trendyqc/urls.py:

Line 10:2: W292 no newline at end of file


Port to kotlin multiplatform

Having a TOML 1.0 compatible library would be great for K/N

While it would be easy to make the parser and syntax tree manipulation multiplatform, conversion between the syntax tree and Kotlin types would be impossible without essentially reinventing that part of the library COMPLETELY. That conversion relies on reflection to work, and Kotlin support for reflection I basically nonexistent outside of JVM.
Would a library without that convenience still be useful? If people think so I wouldn't mind making the core multiplatform while keeping conversions for JVM only.

I personally think so. The ideal would be for it to support kotlinx serialization though.


Added create key method to security_keyvault

@heaths, you are the subject matter expert. Can you guide this to completion?

I'm waiting to see requested changes.

Please reopen if this is picked back up.


Add support for FreeBSD

go get -u github.com/derekparker/delve/cmd/dlv
# github.com/derekparker/delve/proc
../../../github.com/derekparker/delve/proc/proc.go:43: undefined: OSProcessDetails

Unfortunately FreeBSD is not a supported platform at the moment.

Actually, let me rename and reopen for adding FreeBSD support.

For completeness sake, retrieving the dependencies fails like this:
% go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv
github.com/peterh/liner (download)
github.com/derekparker/delve (download)
Fetching https://gopkg.in/yaml.v2?go-get=1
Parsing meta tags from https://gopkg.in/yaml.v2?go-get=1 (status code 200)
get "gopkg.in/yaml.v2": found meta tag main.metaImport{Prefix:"gopkg.in/yaml.v2", VCS:"git", RepoRoot:"https://gopkg.in/yaml.v2"} at https://gopkg.in/yaml.v2?go-get=1
gopkg.in/yaml.v2 (download)
Fetching https://golang.org/x/debug/dwarf?go-get=1
Parsing meta tags from https://golang.org/x/debug/dwarf?go-get=1 (status code 200)
get "golang.org/x/debug/dwarf": found meta tag main.metaImport{Prefix:"golang.org/x/debug", VCS:"git", RepoRoot:"https://go.googlesource.com/debug"} at https://golang.org/x/debug/dwarf?go-get=1
get "golang.org/x/debug/dwarf": verifying non-authoritative meta tag
Fetching https://golang.org/x/debug?go-get=1
Parsing meta tags from https://golang.org/x/debug?go-get=1 (status code 200)
golang.org/x/debug (download)
Fetching https://rsc.io/x86/x86asm?go-get=1
Parsing meta tags from https://rsc.io/x86/x86asm?go-get=1 (status code 200)
get "rsc.io/x86/x86asm": found meta tag main.metaImport{Prefix:"rsc.io/x86", VCS:"git", RepoRoot:"https://github.com/rsc/x86"} at https://rsc.io/x86/x86asm?go-get=1
get "rsc.io/x86/x86asm": verifying non-authoritative meta tag
Fetching https://rsc.io/x86?go-get=1
Parsing meta tags from https://rsc.io/x86?go-get=1 (status code 200)
rsc.io/x86 (download)
github.com/spf13/cobra (download)
github.com/spf13/pflag (download)
gopkg.in/yaml.v2
github.com/peterh/liner
github.com/derekparker/delve/dwarf/util
github.com/derekparker/delve/dwarf/frame
github.com/derekparker/delve/dwarf/line
github.com/derekparker/delve/dwarf/op
golang.org/x/debug/dwarf
github.com/derekparker/delve/config
rsc.io/x86/x86asm
github.com/derekparker/delve/dwarf/reader
github.com/spf13/pflag
github.com/derekparker/delve/proc
# github.com/derekparker/delve/proc
../../go/src/github.com/derekparker/delve/proc/proc.go:54: undefined: OSProcessDetails
../../go/src/github.com/derekparker/delve/proc/threads.go:23: undefined: WaitStatus
github.com/spf13/cobra

The issue seems to be:
# github.com/derekparker/delve/proc
../../go/src/github.com/derekparker/delve/proc/proc.go:54: undefined: OSProcessDetails
../../go/src/github.com/derekparker/delve/proc/threads.go:23: undefined: WaitStatus

Cheers,
tpltnt

@aarzilli : It seems only need to extend content in /proc directory of delve to support FreeBSD. Is it right?

@NanXiao yes.

Can we also throw in a request for OpenBSD since I'm seeing a similar issue?
$ go get -v -u github.com/peterh/liner github.com/derekparker/delve/cmd/dlv
github.com/peterh/liner (download)
github.com/derekparker/delve (download)
github.com/derekparker/delve/vendor/gopkg.in/yaml.v2
github.com/derekparker/delve/pkg/goversion
github.com/derekparker/delve/pkg/dwarf/util
github.com/derekparker/delve/pkg/dwarf/op
github.com/derekparker/delve/pkg/dwarf/godwarf
github.com/derekparker/delve/pkg/dwarf/frame
github.com/derekparker/delve/pkg/dwarf/line
github.com/derekparker/delve/pkg/dwarf/reader
github.com/derekparker/delve/vendor/golang.org/x/arch/x86/x86asm
github.com/derekparker/delve/pkg/config
github.com/derekparker/delve/vendor/github.com/peterh/liner
github.com/derekparker/delve/pkg/version
github.com/derekparker/delve/vendor/github.com/spf13/pflag
github.com/derekparker/delve/pkg/proc
github.com/derekparker/delve/vendor/github.com/spf13/cobra
github.com/derekparker/delve/service/api
github.com/derekparker/delve/pkg/proc/core
github.com/derekparker/delve/service
github.com/derekparker/delve/pkg/proc/gdbserial
github.com/derekparker/delve/pkg/proc/native
# github.com/derekparker/delve/pkg/proc/native
src/github.com/derekparker/delve/pkg/proc/native/threads.go:16:28: undefined: WaitStatus
src/github.com/derekparker/delve/pkg/proc/native/threads.go:24:18: undefined: OSSpecificDetails
# github.com/derekparker/delve/pkg/proc/gdbserial
src/github.com/derekparker/delve/pkg/proc/gdbserial/gdbserver.go:418:21: undefined: backgroundSysProcAttr
src/github.com/derekparker/delve/pkg/proc/gdbserial/gdbserver.go:468:21: undefined: backgroundSysProcAttr
src/github.com/derekparker/delve/pkg/proc/gdbserial/rr.go:58:22: undefined: backgroundSysProcAttr

It's actually worse than just /proc stuff.  None of the ptrace definitions are in place for FreeBSD.  I'll take a stab at adding them.

I might help with NetBSD, but currently we are in the process of improving our debugging interfaces and this must wait.

Status update: my patched delve compiles on FreeBSD.  I can start it and run a few commands before it aborts due to an array overflow in Go.  I'll keep working as time permits.

@asomers that's pretty cool.

@asomers where is your repository?

Sorry to say that I'm out of time to work on this.  Perhaps somebody else can continue where I left off.  My main repository is at git@github.com:asomers/delve.git and I'm working in the fbsd branch.  I also had to make a few changes to golang.  Those are in git@github.com:asomers/sys in the ptrace_fbsd branch.  They're also already imported into the vendor area of my delve branch.
The biggest challenge to porting Delve to FreeBSD is in the different threading model.  On Linux a thread is just a weird process, and ptrace works more or less identically on threads and processes.  However, on FreeBSD threads are a first-class concept and ptrace works primarily on processes, using a set of special requests to for thread-related stuff.  That difference has exposed some Linuxisms that got accidentally assumed in Delve.  I expect that there are more to follow.
I apologize in advance for any problems with my code.  This is both my first experience with Go and my first experience with ptrace, so it's a little rough.  Good luck to all.

I have got slides (bit dated, but good as a reference) of mine explaining a bit the differences between BSD's ptrace(2) and the Linux's one.
http://netbsd.org/~kamil/ptrace-netbsd/presentation.html

Implemented via https://github.com/golang/go/pull/30704

Oh fantastic.  Can likely change back to a decent OS. :wink:


showWindowsPhone:false missing Nokia phone UA

Using the following option: "showWindowsPhone: false", still misses a key Nokia Windows Phone with the following User Agent string:
Mozilla/5.0 (Mobile; Windows Phone 8.1; Android 4.0; ARM; Trident/7.0; Touch; rv:11.0; IEMobile/11.0; NOKIA; Lumia 730 Dual SIM) like iPhone OS 7_0_3 Mac OS X AppleWebKit/537 (KHTML, like Gecko) Mobile Safari/537

Note that the issue is that utils.mobileUserAgent in 1_utils.js sees this as an Android phone, and does no further checks after that.

Closing this out and tracked internally on JIRA.


content/licensing: make the two questions discussion instead of exercise

Matches their spirit more (and other pages have only discussions,
not exercise blocks).
They won't be in the exercise list, but anyway the other pages
aren't there.
The exercise list will then be empty (but actually I have a pending
change that can allow us to put discussions there, so maybe we leave
it for the time being?
Review: consider the points above

with https://github.com/coderefinery/sphinx-lesson/pull/89 we can have the discussion questions in the exercise list, but I would need another sphinx release (this is very fast)

Maybe we can leave it for the moment? Empty exercise page could look strange and at least for tomorrow we say in the detailed agenda that there won't be group exercises so hopefully it is not a problem for tomorrow.

In a smaller workshop these could be group exercise. In a huge workshop as tomorrow they will be more of a discussion.

I'm now also prepared (with minimal work) to add the discussions to
the exercise list page - just tested.  Needs a quick sphinx-lesson
release but not hard.
... but leaving it for later is probably best, no need to make extra
work.

OK convinced. Merging. I will now anyway go through entire lesson once more and clean up remaining rough edges.


Include title element in index.html

Proposed a title element in the index.html file.

Do you want to have the html 5 logo icon included as well?

@Galbrush That's a good question!
The title you just added in the head element has a different role than the title we see at the top of the page.
It shows up in the tab, like these two:

So I know one tab is the Google page, the other is the GitHub. So when it comes to logos, it will have to be the logo of the owner/creator of the site.
@YuriDevAT Does the club have a logo we could add in the title? If not, let's create one! :rocket:

We can use the YCC logo. But it should be a separate issue anyways. Let's merge this one if we are okay with the title @CorinaMurg

Definitely, this is ready! Thank you @Galbrush! :tada:

Thank you so much for your contribution @Galbrush 🥳


Expand wiki with generators

Create a small page that explains what generators do and how to use them. Most of the description in generators.py can be used for this.

https://github.com/NiekAukes/eca2/wiki/Generators
wiki entry on generators added


invoices+htlcswitch: fix spurious htlc rejections from overly strict onion packet integrity checks

Change Description
This change addresses #7589. The spec was updated here and here to relax the final hop htlc integrity checks, allowing the final htlc to have a higher payment amount or a higher cltv delta than what is specified in the onion packet.
Steps to Test
Steps for reviewers to follow to test the change.
Pull Request Checklist
Testing

[ ] Your PR passes all CI checks.
[ ] Tests covering the positive and negative (error paths) are included.
[ ] Bug fixes contain tests triggering the bug to prevent regressions.

Code Style and Documentation

[ ] The change obeys the Code Documentation and Commenting guidelines, and lines wrap at 80.
[ ] Commits follow the Ideal Git Commit Structure.
[ ] Any new logging statements use an appropriate subsystem and logging level.
[ ]  There is a change description in the release notes, or [skip ci] in the commit message for small changes.

📝 Please see our  Contribution Guidelines for further guidance.

I also wonder if settling an invoice before receiving all the htlcs can be problematic from the payer PoV

As far as I can think of, there is only one situation in which this can occur with the current logic. Let's say that the sender pays a total amount total_msat to the recipient. In the recipient's original invoice, they set an amount in the invoice that they are expecting. This means that with the logic today, the recipient will only begin to settle invoices when the total amount of the received HTLC's exceeds amount. In order for any of the payment shards to be swallowed by the routing nodes, without a corresponding outgoing HTLC to the recipient, that payment shard must be smaller than total_msat - amount. This is explicitly prohibited in the spec.
Further, even if it was not prohibited by the spec, it's hard to categorize this type of issue as problematic. If the recipient is willing to accept the payment once it exceeds amount, they care little about how much the sender actually sent. In the sender's case, the sender was indeed willing to pay the entire amount that they paid out in the MPP. If the sender is happy with what they paid, and the recipient is happy with what they received, I do not believe there is a problem. The "stolen" payment shard can be thought of as large fee to which the sender consented.

Yes, I am not worried at all about someone else getting the extra funds. I was more interested in the edge case of the sender being able to properly detect that a payment was successful even if one of the htlcs in a MPP errors but the other htlcs in the MPP are enough to settle the invoice.
I think it's an edge case that could happen with really small amounts, and probably we just don't MPP there (4 sat invoice for example)

Yes, I am not worried at all about someone else getting the extra funds. I was more interested in the edge case of the sender being able to properly detect that a payment was successful even if one of the htlcs in a MPP errors but the other htlcs in the MPP are enough to settle the invoice.

I see what you are saying. In this case, one of two things will happen. Either the routers will steal a shard, which will appear to the sender as a successful payment, or one of the shards will fail all the way to the source.
In the case where it fails all the way to the source, that shard will either cause the total to dip below the invoice amount or it will not. In the case where it does, presumably an incentive compatible implementation for the recipient will opt to cancel the HTLCs after the timeout period because it does not exceed the threshold (the semantics of which I believe to be preserved by this change) or the recipient will fulfill the HTLC with a preimage reveal, implying that they are satisfied with the result. I believe we can assert that if any of these HTLCs are redeemed (via UpdateFulfillHTLC) then the invoice payment was successful from the POV of the sender.
I think that the edge case you're describing would only present in a scenario where the intermediate hops opted to take a smaller fee and if the size of the payment shards spanned a large enough range. If the max payment shard size is large enough, and the min payment shard size is small enough, then it is possible that the smallest one could be eclipsed by a router opting to take a lower fee on the way. However, since the onion packet specifies amt_to_forward at every hop, even if the current fee policy of the router is lower than is implied by the inbound and outbound htlc value difference, it would be irrational for the router to not take the full fee they were offered, even if they were willing to take a lower one.
So overall, I don't think there is anything to solve here.

Concept ACK.  We should update/add tests for the new behavior.

@ellemouton

The other case I think we should think of is AMP payments.

Now the receiver will go ahead and try to reconstruct the pre-images from the 3 shards & will end up with the incorrect pre-images

This suggests to me quite strongly that we need to formalize what constitutes a "completed payment". I don't currently know if there is something in the HTLC circuit setup that identifies itself as an AMP. In the discussion I had with @positiveblue above, it appears as though the only way we know if an MPP is completed is whether it exceeds the invoice term threshold. According to your suggestion above this is not the real definition of a completed payment when AMPs are being used. A naive search through this file does not reveal where an AMP preimage is reconstructed, but presumably we already have to make the assessment somewhere that a payment is both an AMP and it is complete. Where can that logic be found right now?

https://github.com/lightningnetwork/lnd/blob/d0ca48a4352892f972a87337274c9193bd81e8ea/invoices/update.go#L267-L273
@ellemouton it looks like the failure block here cancels the HTLCs, which makes sense since if we can't reconstruct the preimages there's not much to do. After reading this I don't see any obvious way that we can discern whether the AMP was malformed or the last shard hasn't arrived.
However, even if we can't know for sure, in theory what we could do is in the scenario where the current AMP shard sum exceeds the total_msat value, but we can't reconstruct the preimage, we could wait up to N {seconds|minutes} for another shard to arrive. If it doesn't then we can do a delayed cancel, which would increase latency for true failures, and in exchange we can forward settle a subset of these scenarios.
All of that said, the machinery to accomplish this is not exactly straightforward and involves adding new asynchronous control flow to the settlement logic, which is a somewhat large expense to the code complexity budget. In addition to that, as you point out above, this is an edge case scenario that requires node operators to act irrationally. Finally, the state of LND prior to this PR doesn't allow overpayment of any kind in this scenario, so even without having fixed this edge case, this PR represents a strict improvement over the status quo.
With all of that in mind, I move that we merge this without such logic other than maybe recording how often these AMP reconstruction operations fail. If it turns out that we were wrong about the real customer pain caused by this edge case then we can justify scheduling that work in the future, and if not we can save ourselves the complexity and time.
CC @Roasbeef @saubyk

Ideally yes, in practice no. That'd be a nice goal, but we have limited engineering time.

Right but in this case you're telling me to use more engineering time to remove this testing practice.

20 out of infinite provides very little coverage but too much confidence. We'd think it's protected by property tests while it's not

This argument generalizes to not testing anything at all...I don't think this is a reasonable position to take. I'd love to use the default of 100 but I'd have to be able to reuse the setup and teardown to keep the testing time down. This represents a step in the right direction.

in other words, we are testing a behavior that's not made from the testing object.

I think there's a serious misunderstanding about what this test is doing. It is making sure that irrespective of the amount that the HTLC overpays the payload amount it will be accepted. This is not simply testing addition. It is testing that the acceptance happens irrespective of the value.

functions like arithmetic operations should not rely on a random behavior but dedicated edge case tests are needed, like zero values, overflow, etc.

Functions like arithmetic operations benefit the most from property testing.. since they have the clearest properties i.e. commutativity, associativity, etc.

For sure. I think it's nice to have property tests, while I think the more urgent issue is to make our code testable - this means more interfaces, more defined responsibilities for each subsystem, and simply a higher coverage rate.

A culture of property testing forces you to test against the interface only since you can't hand pick the test data. Pervasively adopting a property testing mindset is like a more thorough TDD which forces the design of clean and consistent interfaces.

Otherwise, here's a simple question - if a developer sees the property test fails in his/her PR, who's gonna fix it? This is already the question we are facing today in our builds, which will soon be fixed.

I don't think the fact that we have an underdefined protocol for how to allocate engineering resources is a good argument for making our testing strategy less thorough.

Since property test increases the testing time significantly

This is the only drawback I can actually see. If this is prohibitive we can turn the number of cases down easily and even if we turned it all the way down to 1 we still have the benefit of documenting the real requirement as opposed to showing an example of the requirement.

OK As far as I can tell, all outstanding items have been taken care of on this PR. There are two failing tests still, it doesn't seem like these are related to my changes but it's possible I am missing something.

I also wanted to ask about the ubuntu itests for etcd and sqlite. I find it difficult to believe the code I changed here broke these tests. Are they known to have issues right now?

With all of that in mind, I move that we merge this without such logic other than maybe recording how often these AMP reconstruction operations fail.

Agreed, this is more or less a bug in the sender not handling their splits or resplits properly. Since it's an AMP payment, they can just try again with distinct values for the set_id field and things should eventually work.
For additional context, this change is intended to enable certain routes to succeed (say due to a min_htlc) field where they otherwise wouldn't.

I also wanted to ask about the ubuntu itests for etcd and sqlite. I find it difficult to believe the code I changed here broke these tests. Are they known to have issues right now?

Hmm, yeah those look like existing flakes we should dig in a bit and make issues to track the flake error itself.

@yyforyongyu

is the chosen property suitable? Either it's testing 20 or 100 different values

So the default value is 100, with the set config: https://cs.opensource.google/go/go/+/refs/tags/go1.20.5:src/testing/quick/quick.go;l=20.
The core look is actually pretty simple: https://cs.opensource.google/go/go/+/refs/tags/go1.20.5:src/testing/quick/quick.go;l=281-293

Get random values
Try invariant
Stop if max count has been reached

should we seed the randomness?

FWIW, we already use testing/quick in a few other areas: https://github.com/search?q=repo%3Alightningnetwork%2Flnd+quick.Check&type=code. It's not all that different from other areas where we generate random data, then do some stuff then run an assertion. The difference here is that we can define "generators" for the values we are about, then hook it into the main config, with the assertion being verified up to N times. This isn't as advanced as stuff like Haskell's quick check, but can be useful in ensuring an invariant is held over a larger input space than a one time run.
If the rand.Rand value isn't specified, the the package will create one and seed it with the current time: https://cs.opensource.google/go/go/+/refs/tags/go1.20.5:src/testing/quick/quick.go;l=200-202

Also re the new fuzz package vs testing/quick, one other big diff is the set of supported types:

The fuzzing arguments can only be the following types:
string, []byte
int, int8, int16, int32/rune, int64
uint, uint8/byte, uint16, uint32, uint64
float32, float64
bool

While with testing/quick the config can be used to define custom generators for arbitrary types. In theory for those types, you can serialize to bytes, then have the test parse that, but that's contextual depending on the nature of the tests (eg: fine for serialization tests, but an add extra burden for say path finding tests).


PAC does not run "npm install" automatically (Version: 1.15.3+g79950a8)

Step 5: PAC does not run "npm install" automatically (Version: 1.15.3+g79950a8)

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

ID: 3fc8bc19-4e5e-b6f4-34ef-77b004c2afd6
Version Independent ID: 847c467c-0015-1eb9-bdc7-720a40f1cdba
Content: Create your first component using Power Apps Component Framework in Microsoft Dataverse - Power Apps
Content Source: powerapps-docs/developer/component-framework/implementing-controls-using-typescript.md
Service: powerapps
Sub-service: pcf
GitHub Login: @noazarur-microsoft
Microsoft Alias: jdaly

Thanks for your comment, @pablolaurin. This issue has been assigned to the doc author for review.

Fixed this by adding the optional  --run-npm-install parameter to pac pcf init


Revert changes from traffic-isolation PoC

As per discussion in https://github.com/knative-extensions/net-kourier/issues/876
Fixes #876
Changes

Reverts changes from https://github.com/knative-extensions/net-kourier/pull/852

/kind removal

Release Note
Drops the experimental `traffic-isolation` feature as this is further explored in Gateway API

Docs
None, as no docs were created yet.

/assign @nak3
/cc @dprotaso , @rhuss

/lgtm
/approve


feat: Add font family to system-themes for map chart

Description
This PR enables Map Chart widget to inherit font family from themes.
This should be merged before #16921 to enable testing on DPs.
Type of change

New feature (non-breaking change which adds functionality)

How Has This Been Tested?

Tested by building the backend on my local system.

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

/ok-to-test sha=3672f57


Adds a number for formatting consistency

Currently, Use the ${localWorkspaceFolder} as environment variable in your code is numbered but Change the workspace to ${localWorkspaceFolder} is not, so this PR simply clarifies that the latter is the second option.

@microsoft-github-policy-service agree

Very cool thanks

kernel/config/build/android.bp/kernel_config.bp/r/android-4.14/android-base-conditionial.xml/androidbase.config/android-recommended-arm.config/androidrecommended-x86.config/non_debugable.config/android-4.19/android.bp/android-base-conditional.xml/android-base.config/android-recommended-arm.config/android-,recommended-,arm64.config/android-recommended-x86.confid/android-recommended.config/non_debugable.config/android-5.4/


Update to 1.4.0

1.4.0 (2016-07-12)
------------------
- New feature: mathematical operators like + and * can take multiple arguments
  as in Hy and other Lisps (#7).

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.


Automatically mark past due subscriptions.

Trying to implement something that automatically marks subscriptions past due. I think there's a better place to put this - where can I plug a helper that examines any subscription data being returned and potentially alters it?
In some ways this is what Stripe would do - you create a subscription, time goes by, subscription expires.

hmmmm, look at  this
subscription.merge!(custom_subscription_params(plan, customer, params))

we use custom_subscription_params and
start_time = options[:current_period_start] || Time.now.utc.to_i

there is the problem - Timecop doesn't affect on that and when you check:
if Time.at(subscription[:current_period_end]) < Time.now.utc

Time.now.utc still the same time as before Timecop call.

I looked into what you suggested, but that happens when we make up a subscription. I think we need to stick to how Stripe works, ie. at some point in time you want to retrieve a subscription that was previously active and now it's past_due or canceled.
I have updated the PR to reflect that, LMK what you think and if there's a way to do this cleaner?


FlatConnect.bioSurvey_v1_JP

When you get a chance, can you please add D_959877599_D_908044428 to this table? Right now only D_959877599_D_700620868 is in the flattened table

I updated my code to include that variable and ran the query, so the table should be correct for now. But for some reason BigQuery Scheduled Queries cannot be updated right now. Seems to be an issue on Google's end. I'll try to update the query again in the morning.

I just deleted the old query and scheduled a new one with the same name as a workaround. Let me know if you have any more issues.


Balance Input emit wrong value after unit change

What happened?
As title suggested.the
Please reproduce in steps
Any Gallery Item could reproduce this.
Expected Behavior
BSX should be the base unit, and emit the right value with bsx unit after the value changed or unit changed.
What browsers are you seeing the problem on?
No response
At which address did you encounter bug?
No response
Are you logged in?
No response
Which wallet you are using?
No response
At which chain did you encounter bug?
No response
Screenshots

Relevant log output
No response
Payment link for reward
https://kodadot.xyz/transfer/?target=<My_Kusama_Address_check_https://github.com/kodadot/nft-gallery/blob/main/CONTRIBUTING.md#creating-your-ksm-address>
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Maybe fixed in #3500 ?

Nah, this is kind a front-end bug.
e.g., If I input 100 kilo, it should emit 100 * 1000 BSX;
I'm working on it, would make a PR tonight.


Context menu in monaco editor appears in wrong place

Repro: Goto https://sli.dev/demo/starter/15 and right click inside the editor
Possibly because our patch (https://github.com/slidevjs/slidev/blob/main/packages/client/setup/monaco.ts#L41-L52) doesn't work after one upgrade of Monaco Editor.

Just found this is a production-only bug🤔


Clarity about detail levels

I have noticed that once I introduced a filter.yml file limiting detail to "dl:summary", I no longer see git:remote-https commands in my telemetry data. Based on this section about detail levels, "dl:summary" is the default.

Are network calls e.g. git:remote-https intended to be filtered out at "dl:summary"?
Why was I getting telemetry for those commands before if the default was also "dl:summary"?
Is there a guide somewhere to what information/commands are reported at each detail level?

Thank you!

I figured out the cause. We added
defaults:
  ruleset: "dl:drop"

to drop all data that is not from our nicknamed repo. However, the result is remote-https, gvfs-helper, and other interesting subcommands are dropped, even when command is run from the named repo. Changing the default to "dl:summary" brings that data back. I don't believe this is the intended behavior.

Have you tried adding a custom ruleset yml file for your nicknamed repos.  Let the ruleset yml govern all of the filtering/detail level for all commands from your important repos.  Then leave let the defaults in the filter.yml drop all data from "non interesting" repos.
https://github.com/git-ecosystem/trace2receiver/blob/main/Docs/config-filter-settings.md#repo-nicknames
https://github.com/git-ecosystem/trace2receiver/blob/main/Docs/config-ruleset-definition.md
For example, in
https://github.com/git-ecosystem/trace2receiver/blob/main/Docs/Examples/Filters/20-Advanced/filter.yml
we define a "monorepo" nickname and use ruleset "rs:monorepo" and that is defined in "rs-monorepo.yml" where we select the 4 commands for which we want verbose details.  For other repos in this example, all commands are routed thru "rs-other.yml" (either by nickname or by fall-thru default), but you could just "dl:drop" them in the "filter.yml" "defaults:" section (and omit the "rs:other" ruleset completely if you wanted).
Hope this helps.  Let me know if you have questions.

Hi Jeff, that is how we currently are set up. Our filter.yml (with an added comment):
keynames:
  nickname_key: "otel.trace2.nickname"

nicknames:
  "<nickname>": "rs:<nickname>"

rulesets:
  "rs:<nickname>": "<path to ruleset file>"

defaults:
  ruleset: "dl:drop" # but if I change this to "dl:summary", I get the remote-https events again!

and our ruleset file has:
default:
  detail: "dl:summary" # even if I change this to "dl:verbose", I don't get remote-https events

@hannahchiodo-msft   Let me take a look. I'll be out of the office the rest of the week, but I'll get back to you next week.  Could you privately email me your YML files and I'll try to repro it.  Thanks!

See: https://github.com/gitgitgadget/git/pull/1679

The Git problem has been fixed in v2.44.0.vfs.0.1
Please try that or a later version.
https://github.com/microsoft/git/releases


unexpected signal during runtime execution

after running this command: ./vearch -conf conf.toml getting below error.
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x7fe08dc49ae0]
runtime stack:
runtime.throw(0x1574410, 0x2a)
/root/.go/src/runtime/panic.go:774 +0x72
runtime.sigpanic()
/root/.go/src/runtime/signal_unix.go:378 +0x47c
goroutine 254 [syscall]:
runtime.cgocall(0x11e53c0, 0xc000febb98, 0x0)
/root/.go/src/runtime/cgocall.go:128 +0x5b fp=0xc000febb68 sp=0xc000febb30 pc=0x4067fb
github.com/vearch/vearch/ps/engine/gammacb._Cfunc_Load(0x7fe064004b10, 0x7fe000000000)
_cgo_gotypes.go:528 +0x49 fp=0xc000febb98 sp=0xc000febb68 pc=0x11b11d9
github.com/vearch/vearch/ps/engine/gammacb.New.func8(0xc0001bd3b0, 0xc)
/root/go/src/github.com/vearch/vearch/ps/engine/gammacb/gamma.go:102 +0x5f fp=0xc000febbd8 sp=0xc000febb98 pc=0x11be0cf
github.com/vearch/vearch/ps/engine/gammacb.New(0xc000613774, 0xc, 0x0, 0xc000ab4f30, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0)
/root/go/src/github.com/vearch/vearch/ps/engine/gammacb/gamma.go:102 +0x61a fp=0xc000febd38 sp=0xc000febbd8 pc=0x11b2cfa
I have installed go (go version go1.13.4 linux/amd64) gcc version 7.4.0 , faiss : 1.5.3
getting below error also often
./vearch -conf conf.toml
./vearch: error while loading shared libraries: libgamma.so.0.1: cannot open shared object file: No such file or directory
but i have such file inside gamma folder.
[100%] Linking CXX shared library libgamma.so
[100%] Built target gamma
[100%] Built target gamma
Install the project...
-- Install configuration: "Release"
-- Installing: /root/go/src/github.com/vearch/vearch/ps/engine/gammacb/lib/lib/libgamma.so.0.1
-- Installing: /root/go/src/github.com/vearch/vearch/ps/engine/gammacb/lib/lib/libgamma.so
-- Set runtime path of "/root/go/src/github.com/vearch/vearch/ps/engine/gammacb/lib/lib/libgamma.so.0.1" to ""
-- Installing: /root/go/src/github.com/vearch/vearch/ps/engine/gammacb/lib/include/gamma_api.h
please any one help me to fix this issue

./vearch: error while loading shared libraries: libgamma.so.0.1: cannot open shared object file: No such file or directory

You can execute export LD_LIBRARY_PATH=/root/go/src/github.com/vearch/vearch/ps/engine/gammacb/lib/lib/:$LD_LIBRARY_PATH before running.

after running this command: ./vearch -conf conf.toml getting below error.
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x8 pc=0x7fe08dc49ae0]
runtime stack:
runtime.throw(0x1574410, 0x2a)
/root/.go/src/runtime/panic.go:774 +0x72
runtime.sigpanic()
/root/.go/src/runtime/signal_unix.go:378 +0x47c
goroutine 254 [syscall]:
runtime.cgocall(0x11e53c0, 0xc000febb98, 0x0)
/root/.go/src/runtime/cgocall.go:128 +0x5b fp=0xc000febb68 sp=0xc000febb30 pc=0x4067fb
github.com/vearch/vearch/ps/engine/gammacb._Cfunc_Load(0x7fe064004b10, 0x7fe000000000)
_cgo_gotypes.go:528 +0x49 fp=0xc000febb98 sp=0xc000febb68 pc=0x11b11d9

Check if there is dirty data in the data directory which is configured in conf.toml, and clear the data directory
conf.toml:
[global]
# the name will validate join cluster by same name
name = "vearch"
# you data save to disk path ,If you are in a production environment, You'd better set absolute paths
data = ["datas/"]

Thanks a lot


Docker compose exec

From the documentation is stated that is not implemented.  Any plan to implement it soon? Thanks

Sure, thanks for reporting it. I was wondering if users actually used this functionality. Now I know

Giving a +1 for this command, I use it frequently in the CLI

I made the pull request: https://github.com/gabrieldemarmiesse/python-on-whales/pull/312 you can expect a release after it's merged.


merge.concatenate layer not connected to input layer. Summary not printing correct total number of weights.

Please make sure that this is a bug. As per our
GitHub Policy,
we only address code/doc bugs, performance issues, feature requests and
build/installation issues on GitHub. tag:bug_template
System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Ubuntu 18.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device:
TensorFlow installed from (source or binary):
TensorFlow version (use command below): 2.1.0
Python version: 3.6.8
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:

You can collect some of this information using our environment capture
script
You can also obtain the TensorFlow version with:

TF 1.0: python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"
TF 2.0: python -c "import tensorflow as tf; print(tf.version.GIT_VERSION, tf.version.VERSION)"

Describe the current behavior
I am working on training a classifier to classify two distributions with an adversary that learns the noise from the distributions. Model.summary() indicates that my adversary model is not connected to input. merge.concatenate layer seems to break the models continuity but I do not understand why.  Loss is not decreasing when I train this model. The combined model consists of 2 models (classifier and adversary) with 501 and 1276 weights respectively. Total number of trainable weights listed by model.summary is 1276 instead of 1777.
Describe the expected behavior
Loss should decrease during training, combined model should have 1777 weights and adversary model should have an entry in summary.connected to.
Standalone code to reproduce the issue
Provide a reproducible test case that is the bare minimum necessary to generate
the problem. If possible, please share a link to Colab/Jupyter/any notebook.
N = 62500
Make data - 2 class that are 2D gaussian distributed. Gaussian noise affecting y coord of Y=1 class
cov0 = np.array([[1,-0.5],[-0.5,1]])
cov1 = np.array([[1,0],[0,1]])
train_data0 = np.random.multivariate_normal([0,0],cov0,N)
train_labels0 = np.zeros((N,1))
train_data1 = np.random.multivariate_normal([1,1],cov1,N)
train_labels1 = np.ones((N,1))
train_z = np.random.normal(0,1,N*2)
train_data1[:,1] = train_data1[:,1]+train_z[N:]
#train_z[:N] = 0
train_data = np.vstack([train_data0,train_data1])
train_labels = np.append(train_labels0,train_labels1)
#shuffle data
indices = np.random.permutation(len(train_data))
train_data = train_data[indices]
train_labels =train_labels[indices]
train_z = train_z[indices]
#train test split
train_data, valid_data, train_labels, valid_labels, train_z, valid_z = train_test_split(train_data,train_labels,train_z,test_size=50000)
#Models
inputs = Input(shape=(train_data.shape[1],))
Classifier model
Dx = Dense(20, activation="tanh")(inputs)
Dx = Dense(20, activation="relu")(Dx)
Dx = Dense(1, activation="sigmoid")(Dx)
f = Model([inputs],[Dx])
#adversary model
from keras.layers.merge import concatenate
out = f(inputs)
out = Dense(20,activation="relu")(out)
out = Dense(20,activation="relu")(out)
mu = Dense(5,activation="linear")(out)
sigma = Dense(5,activation=backend.exp)(out)
pi = Dense(5,activation="softmax")(out)
out = concatenate([mu,sigma,pi])
r = Model([inputs],[out])
Loss for r
def rloss(lam):
def loss_r(y_true,y_pred):
#y_true = y_true.flatten()
mu = y_pred[:,:5]
sig = y_pred[:,5:10]
pi = y_pred[:,10:]
pdf = 0
for i in range(5):
pdf += pi[:,i] *(1.0/(sig[:,i]np.sqrt(2.0np.pi)))*backend.exp(-((y_true-mu[:,i])*2)/(2.0(sig[:,i]**2)))
return lam * tf.math.reduce_mean(-backend.log(pdf))
return loss_r
f.compile(loss = backend.binary_crossentropy, optimizer = SGD())
#combined model
adv1 = Model([inputs], [f(inputs), r(inputs)])
adv1.compile(loss=[backend.binary_crossentropy,rloss(-50)],optimizer=SGD(momentum=0.0))
adversary
adv2 = Model(inputs,[r(inputs)])
adv2.compile(loss=[rloss(1.0)],optimizer=SGD(momentum=0.0))
adv1 summary total trainable params != sum of params of individual models
adv1.summary()
#adv2 missing "connected to"
adv2.summary()
#Loss of adversary does not decrease as expected
f.trainable = False
r.trainable = True
adv2.fit(train_data,train_z,epochs=20)
Other info / logs Include any logs or source code that would be helpful to
diagnose the problem. If including tracebacks, please include the full
traceback. Large logs and files should be attached.
I am trying to reproduce the model of the paper. Paper's code is on github: https://github.com/glouppe/paper-learning-to-pivot/blob/master/code/Toy.ipynb

@johnmcgowan1,
Importing keras directly instead of tensorflow.keras seems to work. I was able to run the code without any issues, please find the gist of it here.
You can read more about it, from this StackOverflow comment. Thanks!

@amahendrakar Thank you for your attention. I have changed to keras but this does not solve the problem Note in rloss that you should be using (-keras.backend.log), in the colab you sent you use keras.backend.log. If you change this to negative you will see the loss still hardly decreases at all. I still expect the number of weights in the first summary to be 1777 and to have a connected comment in summary.

I was able to solve this by setting KERAS_BACKEND to theano. And compiling the adversary again after setting weights to trainable. Still only 1276 weights are printed, but the loss is decreasing as it should be. Functioning code here:
import numpy as np
import os
import theano
os.environ['KERAS_BACKEND'] ='theano'
import keras
from keras.layers import Input, Dense, Concatenate
from keras import initializers, backend
from keras.models import Model, Sequential
from keras.optimizers import SGD
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
N = 62500
Make data
cov0 = np.array([[1,-0.5],[-0.5,1]])
cov1 = np.array([[1,0],[0,1]])
train_data0 = np.random.multivariate_normal([0,0],cov0,N)
train_labels0 = np.zeros((N,1))
train_data1 = np.random.multivariate_normal([1,1],cov1,N)
train_labels1 = np.ones((N,1))
train_z = np.random.normal(0,1,N*2)
train_data1[:,1] = train_data1[:,1]+train_z[N:]
#train_z[:N] = 0
train_data = np.vstack([train_data0,train_data1])
train_labels = np.append(train_labels0,train_labels1)
Plot data
plt.scatter(train_data[train_labels==0,0],train_data[train_labels==0,1],c="r",label='Y=0')
plt.scatter(train_data[train_labels==1,0],train_data[train_labels==1,1],c="b",label='Y=1')
plt.legend()
plt.show()
train_z = train_z.reshape(-1,1)
indices = np.random.permutation(len(train_data))
train_data = train_data[indices]
train_labels =train_labels[indices]
train_z = train_z[indices]
#train test split
train_data, valid_data, train_labels, valid_labels, train_z, valid_z = train_test_split(train_data,train_labels,train_z,test_size=50000)
#Models
inputs = Input(shape=(train_data.shape[1],))
Dx = Dense(20, activation="tanh")(inputs)
Dx = Dense(20, activation="relu")(Dx)
Dx = Dense(1, activation="sigmoid")(Dx)
f = Model([inputs],[Dx])
from keras.layers.merge import concatenate, Add
out = f(inputs)
out = Dense(20,activation="relu")(out)
out = Dense(20,activation="relu")(out)
mu = Dense(5,activation="linear")(out)
sigma = Dense(5,activation="exponential")(out)
pi = Dense(5,activation="softmax")(out)
out = concatenate([mu,sigma,pi])
r = Model([inputs],[out])
Loss for r
def rloss(lam):
def loss_r(y_true,y_pred):
y_true = y_true.ravel()
mu = y_pred[:,:5]
sig = y_pred[:,5:10]
pi = y_pred[:,10:]
pdf = 0
for i in range(5):
pdf += pi[:,i] *(1.0/(sig[:,i]np.sqrt(2.0np.pi)))*keras.backend.exp(-((y_true-mu[:,i])*2)/(2.0(sig[:,i]**2)))
return lam * keras.backend.mean(-keras.backend.log(pdf))
return loss_r
f.compile(loss = keras.backend.binary_crossentropy, optimizer = keras.optimizers.SGD())
adv1 = Model([inputs], [f(inputs), r(inputs)])
adv1.compile(loss=[keras.backend.binary_crossentropy,rloss(-50)],optimizer=keras.optimizers.SGD(momentum=0.0))
adv2 = Model([inputs],[r(inputs)])
adv2.compile(loss=[rloss(1.0)],optimizer=keras.optimizers.SGD(momentum=0.0))
adv1.summary()
adv2.summary()
f.trainable = False
r.trainable = True
adv2.compile(loss=[rloss(1.0)],optimizer=keras.optimizers.SGD(momentum=0.0))
adv2.fit(train_data,train_z,epochs=20)


Circle CI Next Steps

Task summary

Once #441 is merged, the documentation still needs to be added to the setup. The docs need to be updated, this is currently missing from #441
A cron job can be added to test master daily

I would also run the two CI's in parallel for a few PR's

code cov would be nice too if whoever picks this up has the bandwidth and wants to do :)


kubectl get vmi my-vmi   can not show ip

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:
/kind bug
/kind enhancement

What happened:
I create a vmi ,  It was normal at first，but after a while
when I use kubectl get vmi,  it does not show the IP of vmi , but virt-launcher does,
and ssh to the vmi , eth0 nic shows the ip ,which as the same with   virt-launcher pod

What you expected to happen:
kubectl get vim shows the IP
How to reproduce it (as minimally and precisely as possible):
just create a vmi
Anything else we need to know?:
Environment:

KubeVirt version (use virtctl version): Client Version: version.Info{GitVersion:"v0.39.0", GitCommit:"6493f7130788fc2242f0ebbda2ace06dc12a4ad0", GitTreeState:"clean", BuildDate:"2021-03-10T15:29:59Z", GoVersion:"go1.13.14", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{GitVersion:"v0.37.1-dirty", GitCommit:"f270b5befe16c20a11c34f22efecf2407f9591bc", GitTreeState:"dirty", BuildDate:"2021-01-21T20:13:15Z", GoVersion:"go1.13.14", Compiler:"gc", Platform:"linux/amd64"}

Kubernetes version (use kubectl version): Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.2", GitCommit:"f5743093fd1c663cb0cbc89748f730662345d44d", GitTreeState:"clean", BuildDate:"2020-09-16T13:41:02Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.2", GitCommit:"f5743093fd1c663cb0cbc89748f730662345d44d", GitTreeState:"clean", BuildDate:"2020-09-16T13:32:58Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}

VM or VMI specifications:
apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachine
metadata:
name: test
spec:
runStrategy: Manual
template:
metadata:
labels:
kubevirt.io/domain: centos7
spec:
domain:
cpu:
cores: 4
devices:
inputs:
- bus: usb
type: tablet
name: tablet1
disks:
- bootOrder: 1
disk:
bus: sata
name: pvcdisk
- bootOrder: 2
cdrom:
bus: sata
name: cdromiso
machine:
type: q35
resources:
requests:
memory: 6G
volumes:
- name: cdromiso
persistentVolumeClaim:
claimName: iso-linux
- name: pvcdisk
persistentVolumeClaim:
claimName: test-disk

Cloud provider or hardware configuration:

OS (e.g. from /etc/os-release): centos7

Kernel (e.g. uname -a): 5.4.125-1.el7.elrepo.x86_64

Install tools:

Others:

Hey @cszixin , I would first suggest to upgrade the versions of both virtctl and kubectl and see if it solves the problem,Its working for me on this versions:
kubectl version
Client Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.1", GitCommit:"c4d752765b3bbac2237bf87cf0b1c2e307844666", GitTreeState:"clean", BuildDate:"2020-12-18T12:09:25Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"22+", GitVersion:"v1.22.0-rc.0+ef241fd", GitCommit:"ef241fded394346e93100d5c1be9bc41e6ed6fcf", GitTreeState:"clean", BuildDate:"2021-10-14T04:46:33Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}

AND
virtctl version
Client Version: version.Info{GitVersion:"v0.46.1", GitCommit:"5ed15d782ae5bfb7e1323e65defae6cc84ca8175", GitTreeState:"clean", BuildDate:"2021-10-19T15:50:33Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{GitVersion:"v0.44.3-52-g3e3e20501", GitCommit:"3e3e20501b01c8c3ffd7f43f2e7b5af76e795055", GitTreeState:"clean", BuildDate:"2022-01-12T23:21:53Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}

Please update us if the issue solved :)

/sig networking

/sig network


Text written to debug with braces in it does not print

If there are braces in a string that is printed to console, that string does not print.  I'm assuming this has to do with string.Format interpreting those braces as arguments.  This makes it difficult to print json to console.
string s = "{string in braces}";
Debug.WriteDebugLine(this, "Trying to write s to Debug");
Debug.WriteDebugLine(this, s);
Debug.WriteDebugLine(this, "Attempt 2: {0}", s);

You are correct. I should probably adjust the code to use string formatting only if the parameter array is not null or empty...


Unable to use @trace_and_save with multiprocessing

When trying to use @trace_and_save on a function that runs in a separate thread (using multiprocessing.Pool), I get the following error
Traceback (most recent call last):
  File "/usr/lib/python3.10/multiprocessing/pool.py", line 125, in worker
    result = (True, func(*args, **kwds))
  File "/usr/lib/python3.10/multiprocessing/pool.py", line 48, in mapstar
    return list(map(*args))
  File "/home/acarter/.local/lib/python3.10/site-packages/viztracer/decorator.py", line 49, in wrapper
    tracer.fork_save(file_name)
  File "/home/acarter/.local/lib/python3.10/site-packages/viztracer/viztracer.py", line 254, in fork_save
    p.start()
  File "/usr/lib/python3.10/multiprocessing/process.py", line 118, in start
    assert not _current_process._config.get('daemon'), \
AssertionError: daemonic processes are not allowed to have children

I think this is because VizTracer tries to do it's thing in a new process in a new process to minimize performance impacts (docs), but you can't start a new process pool from within one (or something like that). Perhaps there could be an option for @trace_and_save to do the VizTracer work in the same process? I'd be happy to work on this

Sure, if you want to work on this, you can add an extra argument fork_save=True to@trace_and_save. The user can set it to False if they want to save the trace on the same process.
Just make sure you write the test for it to keep the 100% coverage rate :)


[function] searching memory with conversation_search FAILED

i just create a chatbot whit defult api.
then i chat with her for a while.
then i asked if you could list all the conversation we had haven.
then it began to use the [function] searching memory with conversation_search and constantly fail.
I don't konw what's going on and how to slove it.

similar (problem with archive / search functions)  Error calling function core_memory_append: Edit failed: Exceeds 2000 character limit (requested 3120). Consider summarizing existing core memories in 'persona' and/or moving lower priority content to archival memory to free up space in core memory, then trying again.  --> then loops again
Also --> No function named step1_archivall_search_matching_query   ->  ** so archival search not working.. but memory shows the data for the answer is there  (using  free memgpt endpoint)

I believe this is a model issue - closing for now but please feel free to re-open.