C# project references are handled like package references

Describe the bug
C# solutions c may consist of a *.sln file and multiple *.csproj files which again might reference each other.
A *.csproj file may reference NuGet packages with <PackageReference... tags and other projects with <ProjectReference... tags.
When analyzing with ORT I get lots of warnings about missing remote metadata for package IDs which actually belong to my own internal project references instead of external packages.
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Create a C# solution
Create two projects inside A and XBABB (this is necessary since a nuget.org package "B" actually exists)
reference project XBABB from project A
run the analyzer
create a report
see the warning

(or simply use the attached minimal example)
Fetching package metadata for: XBABB.1.0.0 No package metadata found for XBABB.1.0.0.         Failed to get remote metadata for name: 'XBABB' version: '1.0.0'.
Expected behavior
Project references are not listed as FOSS components.
Console / log output
ort --info analyze -i ~/MyProject/ -f JSON -o ~/ort-test-results/
<truncated>
______________________________
/        \_______   \__    ___/ The OSS Review Toolkit, version 26.0.0,
|    |   | |       _/ |    |    built with JDK 11.0.23+9, running under Java 21.0.3.
|    |   | |    |   \ |    |    Executing 'analyze' as 'myuser' on Linux
\________/ |____|___/ |____|    with 4 CPUs and a maximum of 3996 MiB of memory.

Environment variables:
ORT_CONFIG_DIR = /home/myuser/.ort/config
ORT_DATA_DIR = /home/myuser/.ort
HOME = /home/myuser
SHELL = /bin/bash
TERM = xterm-256color

Looking for ORT configuration in the following file:
        /home/myuser/.ort/config/config.yml

Looking for analyzer-specific configuration in the following files and directories:
        /home/myuser/MyProject/.ort.yml (does not exist)
        /home/myuser/.ort/config/resolutions.yml (does not exist)
The following 1 package manager(s) are enabled:
        NuGet
The following 3 package curation provider(s) are enabled:
        RepositoryConfiguration, DefaultDir, DefaultFile
Analyzing project path:
        /home/myuser/MyProject
Found 2 NuGet definition file(s) at:
        XBABB/XBABB.csproj
        A/A.csproj
Found in total 2 definition file(s) from the following 1 package manager(s):
        NuGet
13:27:32.063 [main] INFO  org.ossreviewtoolkit.analyzer.PackageManagerRunner - Starting NuGet analysis.
13:27:32.069 [DefaultDispatcher-worker-1] INFO  org.ossreviewtoolkit.analyzer.PackageManager - Using NuGet to resolve dependencies for path 'XBABB/XBABB.csproj'...
13:27:32.084 [DefaultDispatcher-worker-1] INFO  org.ossreviewtoolkit.utils.common.ProcessCapture - Running 'nuget-inspector --with-details --verbose --project-file /home/myuser/MyProject/XBABB/XBABB.csproj --json /tmp/ort-NuGetInspector13801298568216150985/nuget-inspector436645026580039057.json' in '/home/myuser/MyProject/XBABB'...
13:27:32.922 [DefaultDispatcher-worker-1] INFO  org.ossreviewtoolkit.utils.ort.OrtProxySelector - Proxy selector was successfully installed.
13:27:32.940 [DefaultDispatcher-worker-1] INFO  org.ossreviewtoolkit.utils.ort.OrtAuthenticator - Authenticator was successfully installed.
13:27:33.186 [DefaultDispatcher-worker-1] INFO  org.ossreviewtoolkit.utils.common.ProcessCapture - Running 'hg root' in '/home/myuser/MyProject/XBABB'...
13:27:33.539 [DefaultDispatcher-worker-1] INFO  org.ossreviewtoolkit.analyzer.PackageManager - NuGet resolved dependencies for path 'XBABB/XBABB.csproj' in 1.459525802s.
13:27:33.539 [DefaultDispatcher-worker-1] INFO  org.ossreviewtoolkit.analyzer.PackageManager - Using NuGet to resolve dependencies for path 'A/A.csproj'...
13:27:33.547 [DefaultDispatcher-worker-1] INFO  org.ossreviewtoolkit.utils.common.ProcessCapture - Running 'nuget-inspector --with-details --verbose --project-file /home/myuser/MyProject/A/A.csproj --json /tmp/ort-NuGetInspector5821953169302856016/nuget-inspector4045707755313343774.json' in '/home/myuser/MyProject/A'...
13:27:34.855 [DefaultDispatcher-worker-1] INFO  org.ossreviewtoolkit.utils.common.ProcessCapture - Running 'hg root' in '/home/myuser/MyProject/A'...
13:27:35.004 [DefaultDispatcher-worker-1] INFO  org.ossreviewtoolkit.analyzer.PackageManager - NuGet resolved dependencies for path 'A/A.csproj' in 1.464909396s.
13:27:35.006 [DefaultDispatcher-worker-1] INFO  kotlinx.coroutines.CoroutineScope - Finished NuGet analysis.
13:27:35.032 [main] INFO  org.ossreviewtoolkit.utils.common.ProcessCapture - Running 'hg root' in '/home/myuser/MyProject'...
13:27:35.219 [main] INFO  org.ossreviewtoolkit.model.utils.ConfigurationResolver - Getting 0 package curation(s) from provider 'RepositoryConfiguration' took 394.007us.
13:27:35.219 [main] INFO  org.ossreviewtoolkit.model.utils.ConfigurationResolver - Getting 0 package curation(s) from provider 'DefaultDir' took 5.4us.
13:27:35.220 [main] INFO  org.ossreviewtoolkit.model.utils.ConfigurationResolver - Getting 0 package curation(s) from provider 'DefaultFile' took 2.6us.
Wrote analyzer result to '/home/myuser/ort-test-results/analyzer-result.json' (0.00 MiB) in 1.008807826s.
The analysis took 3.231642366s.
Found 2 project(s) and 1 package(s) in total (not counting excluded ones).
Applied 0 curation(s) from 0 of 3 provider(s).
Resolved issues: 0 errors, 0 warnings, 0 hints.
Unresolved issues: 0 errors, 1 warning, 0 hints.
There is 1 unresolved issue with a severity equal to or greater than the WARNING threshold.

<truncated>

Leaving us with the following result:
{
  "repository" : {
    "vcs" : {
      "type" : "",
      "url" : "",
      "revision" : "",
      "path" : ""
    },
    "vcs_processed" : {
      "type" : "",
      "url" : "",
      "revision" : "",
      "path" : ""
    },
    "config" : { }
  },
  "analyzer" : {
    "start_time" : "2024-07-22T13:27:31.971079030Z",
    "end_time" : "2024-07-22T13:27:35.202721396Z",
    "environment" : {
      "ort_version" : "26.0.0",
      "build_jdk" : "11.0.23+9",
      "java_version" : "21.0.3",
      "os" : "Linux",
      "processors" : 4,
      "max_memory" :<PHONE_NUMBER>,
      "variables" : {
        "HOME" : "/home/myuser",
        "SHELL" : "/bin/bash",
        "TERM" : "xterm-256color"
      },
      "tool_versions" : { }
    },
    "config" : {
      "allow_dynamic_versions" : false,
      "enabled_package_managers" : [ "Nuget", "NPM" ],
      "skip_excluded" : true
    },
    "result" : {
      "projects" : [ {
        "id" : "NuGet::A/A.csproj:",
        "definition_file_path" : "",
        "declared_licenses" : [ ],
        "declared_licenses_processed" : { },
        "vcs" : {
          "type" : "",
          "url" : "",
          "revision" : "",
          "path" : ""
        },
        "vcs_processed" : {
          "type" : "",
          "url" : "",
          "revision" : "",
          "path" : ""
        },
        "homepage_url" : "",
        "scope_names" : [ "net8.0" ]
      }, {
        "id" : "NuGet::XBABB/XBABB.csproj:",
        "definition_file_path" : "",
        "declared_licenses" : [ ],
        "declared_licenses_processed" : { },
        "vcs" : {
          "type" : "",
          "url" : "",
          "revision" : "",
          "path" : ""
        },
        "vcs_processed" : {
          "type" : "",
          "url" : "",
          "revision" : "",
          "path" : ""
        },
        "homepage_url" : "",
        "scope_names" : [ "net8.0" ]
      } ],
      "packages" : [ {
        "id" : "NuGet::XBABB:1.0.0",
        "purl"<EMAIL_ADDRESS>        "declared_licenses" : [ ],
        "declared_licenses_processed" : { },
        "description" : "",
        "homepage_url" : "",
        "binary_artifact" : {
          "url" : "",
          "hash" : {
            "value" : "",
            "algorithm" : ""
          }
        },
        "source_artifact" : {
          "url" : "",
          "hash" : {
            "value" : "",
            "algorithm" : ""
          }
        },
        "vcs" : {
          "type" : "",
          "url" : "",
          "revision" : "",
          "path" : ""
        },
        "vcs_processed" : {
          "type" : "",
          "url" : "",
          "revision" : "",
          "path" : ""
        }
      } ],
      "dependency_graphs" : {
        "NuGet" : {
          "packages" : [ "NuGet::XBABB:1.0.0" ],
          "scopes" : {
            ":A/A.csproj::net8.0" : [ {
              "root" : 0
            } ]
          },
          "nodes" : [ {
            "issues" : [ {
              "timestamp" : "2024-07-22T13:27:34.845943262Z",
              "source" : "NuGet",
              "message" : "Failed to get remote metadata for name: 'XBABB' version: '1.0.0'. System.Exception: No package metadata found for XBABB.1.0.0.",
              "severity" : "WARNING"
            } ]
          } ],
          "edges" : [ ]
        }
      }
    }
  },
  "scanner" : null,
  "advisor" : null,
  "evaluator" : null,
  "resolved_configuration" : {
    "package_curations" : [ {
      "provider" : {
        "id" : "RepositoryConfiguration"
      },
      "curations" : [ ]
    }, {
      "provider" : {
        "id" : "DefaultDir"
      },
      "curations" : [ ]
    }, {
      "provider" : {
        "id" : "DefaultFile"
      },
      "curations" : [ ]
    } ]
  }
}

Environment

ORT version: 26.0.0
Java version: 21-openjre
OS: Ubuntu 22.04

MyProject.zip

Thanks for the report @georg-eckert-zeiss. I see that by now you have filed https://github.com/nexB/nuget-inspector/issues/54 in the upstream nuget-inspector project, which is what I would have proposed. Let's close this here as the problem is indeed an upstream issue.


Update bg.coffee

Hello.I just found CodeCombat and really liked the idea, as long as I am trying to learn to code.I saw that it needs Bulgarian translators and just tried it really quick how it works, however i might continue contribute to this project if it's possible.

Closing for now; could merge if we could get the CLA signed.


[HOLD for payment 2023-10-09] HIGH: LHN logic is broken for paid reports

Correct logic as follows:
policyExpenseChat (member view)

First line: %workspaceName% (note: name depends on who’s looking at it, this is the member case)
Second line: latest message in the workspace chat. We a report has just paid paid, that's %workspaceName% paid %amount%

Report (member & admin)

First line: report name (e.g. %workspaceName% paid %amount%)
Second line: latest message, (e.g. %userDisplayName% paid %amount%

At the moment the policyExpenseChat is incorrectly showing the second line from the report (e.g. Niki paid...) instead of what should should actually be the second line for the policyExpenseChat.

Closed https://github.com/Expensify/App/issues/26542 in favour of this one, posting my findings from there here as well:

I have tried to get to the bottom of this but its getting quite convoluted with all the perspectives and if user is owed  or its settled. Its doable just the logic is getting too tricky and its prone to cause some regressions in future. Might have to clean this up a bit.
I will move this to weekly and will look into it later.
Maybe @koko57 or @BeeMargarida would be interested in taking this on.
Currently the getReportPreviewMessage for both Money report and the workspace or IOU chat last message in LHN. But its misleading and I think we should separate the logic of the report preview action and the paid report action message into two functions
Then I think we should simplify the translations that in case of expense report, the paid message will always include the Policy name same as in case of Workspace owes £40 we would have Workspace paid £40. Then we need to update the logic that adds the last actor to not add it for this kind of message in LHN

This does not have to be internal, but he logic is quite complicated at this point and we are reusing the same getReportPreviewMessage method to get the message for report preview and also for the money report, which was fine until we have added more than an admin role and I think we need to separate this.
I think it would be a good issue for some agency

@mountiny I'm currently working on another ticket but as I'm waiting for a PR review I can have a look 🙂

🎉 lets do this!
Let us know if things are not clear from the issue body?
I think we will have to split the getReportPreviewMessage into two methods to make this cleaner even though they share lots of similar logic

Either I'm doing something wrong or it's fixed - I cannot recreate the issue (both prod and staging).
Could you please provide some repro steps?

@mountiny @JmillsExpensify
So just to clarify:
in this case

the second line should be: "TEST paid 3.00 elsewhere"?

cc @JmillsExpensify
Correct, In this case there will be the workspace name twice

@mountiny I've found the culprit here:
the name displayed for the member was created by this line of code https://github.com/Expensify/App/blob/95c9e4743f44ca42ece2c6ac56259b911d5feafc/src/libs/SidebarUtils.js#L291-L292
and then added to the lastMessageTextFromReport here https://github.com/Expensify/App/blob/95c9e4743f44ca42ece2c6ac56259b911d5feafc/src/libs/SidebarUtils.js#L293 (btw do we need this condition with report? the function returns when there is no report)
but as we don't add the payer to the string like here https://github.com/Expensify/App/blob/95c9e4743f44ca42ece2c6ac56259b911d5feafc/src/libs/ReportUtils.js#L1467
but we pass only amount
https://github.com/Expensify/App/blob/95c9e4743f44ca42ece2c6ac56259b911d5feafc/src/libs/ReportUtils.js#L1459
we end up with incomplete string for the workspace admin

and the string with added name for the member

Starting working on my proposal, I guess the solution is pretty easy and won't require splitting the logic of getReportPreviewMessage for the report and policyExpenseChat, but I need to check if it won't cause any regressions.

and one more question: we don't need the ":" after the workspace/payer's name?

and the second one:
is it ok that we don't have the payer's name here?
Here's how it currently looks like for
the requestor:

and the payer:

PS. I also wondered why it works properly for 'owes' action -> we pass payer's name to the string and the condition for adding the name with colon is false - the lastActorAccountId is 0. Is it correct behavior?

yes
This is looking good to me and its what I run into when investigated, however, I thought I would do the same with payer owes translation key in the getReportPreviewMesage but for the paid case and workspace too. And in such case its just getting a bit more confusing as the expense report message is not going to be the same everywhere as the report preview. So why to use the same method.

is it ok that we don't have the payer's name here?

I think that is fine, but @JmillsExpensify to confirm. We do post who owes.

(btw do we need this condition with report? the function returns when there is no report)
👍

and one more question: we don't need the ":" after the workspace/payer's name?

We dont need it I would say

PS. I also wondered why it works properly for 'owes' action -> we pass payer's name to the string and the condition for adding the name with colon is false - the lastActorAccountId is 0. Is it correct behavior?

About the correct behavior - I meant: is the fact that lastActorAccountId is 0 ok?

and one more question: we don't need the ":" after the workspace/payer's name?

This is a great question. Agree with @mountiny that we don't need it for this case.

and the second one: is it ok that we don't have the payer's name here? Here's how it currently looks like for the requestor:  and the payer:
What are other possible cases where we don't want to display payer's name?

I think all these cases look fine as well. I also can't think of any other cases where we don't want to display payer's name.

is the fact that lastActorAccountId is 0 ok?

@koko57 you are saying the report.lastActorAccountID is 0 when the workspace admin pays? Given in the screenshot it is showing Niki, then in that case it was updated correctly
I dont think it should be 0

@mountiny no, it happens when we request monet in the workspace

that's why it doesn't match the condition and the payer's name isn't added like here

@koko57 what is the report contents?

@koko57 this is the workspace chat and in the expense report, the account ID is not 0?

yeah, in the expense report is not 0 🤔

I guess I've found a solution but I need to check if it doesn't cause any regression

Hmm this is a bit odd indeed, but currently dont have much time to dig into this one on backend

@mountiny was about to paste my proposal 😅

@reviewers
Proposal
Please re-state the problem that we are trying to solve in this issue.
We have an incorrect message for the policyExpenseChat when the money request is settled.
Correct messages:
First line: %workspaceName% (note: name depends on who’s looking at it, this is the member case)
Second line: latest message in the workspace chat. When a report has just paid, that's %workspaceName% paid %amount%
Current messages:
First line: %workspaceName% (note: name depends on who’s looking at it, this is the member case)
%lastActorName% paid %amount%
What is the root cause of that problem?
The name displayed for the member was created by this line of code:
https://github.com/Expensify/App/blob/95c9e4743f44ca42ece2c6ac56259b911d5feafc/src/libs/SidebarUtils.js#L291-L292
and then added to the lastMessageTextFromReport here:
https://github.com/Expensify/App/blob/95c9e4743f44ca42ece2c6ac56259b911d5feafc/src/libs/SidebarUtils.js#L293
As we don't add the payer to the string like here:
https://github.com/Expensify/App/blob/95c9e4743f44ca42ece2c6ac56259b911d5feafc/src/libs/ReportUtils.js#L1467
but we pass only amount
https://github.com/Expensify/App/blob/95c9e4743f44ca42ece2c6ac56259b911d5feafc/src/libs/ReportUtils.js#L1459
we end up with incomplete string for the workspace admin ‘paid PLN 3.00 elsewhere’
and the string with added name for the member ‘Aga K: paid PLN 3.00 elsewhere’
To the other messages it didn’t add the name because either the lastActorDetails.accountID was 0 or participants count was 1.
What changes do you think we should make in order to solve the problem?
If we want to keep the current logic of getReportPreviewMessage and not to add the payer to the settled iou we should do 2 things:
Block adding the member name to the message
we can do it by saving this line as a const
const lastActor = hasMultipleParticipants && lastActorDetails && lastActorDetails.accountID && Number(lastActorDetails.accountID) !== currentUserAccountID ? lastActorDetails.displayName : '';

and then add this condition here:
} else if (lodashGet(lastAction, 'actionName', '') !== CONST.REPORT.ACTIONS.TYPE.REPORTPREVIEW && lastActor && lastMessageTextFromReport) {
result.alternateText = `${lastActor}: ${lastMessageText}`;

Add workspace name to the message
by adding it here:

const actorName = ReportUtils.isSettled(iouReport.reportID) ? `${ReportUtils.getPolicyName(report)} ` : ``
lastMessageTextFromReport = actorName + ReportUtils.getReportPreviewMessage(iouReport, lastReportAction);

this way we only limit the changes to the getLastMessageTextForReport and getOptionData without changing the logic of getReportPreviewMessage.
What alternative solutions did you explore? (Optional)
Currently we don’t have the payer’s name in any of the chat. For consistency maybe we could add a payer’s name to the message like we do for the other messages (like those with ‘owes’). We would also need to apply the first condition.
I’d rather not create a separate method for getting preview message just for this one case - it would require duplicating code and adding additional conditions to either use one method or the latter.

This looks good to me, I think I would name the lastActor as lastActorDisplayName to be more specific. Can you please raise a PR? thanks!

@mountiny I've opened the draft PR https://github.com/Expensify/App/pull/27700
but one last thing, just to make sure:
for the money request report it should stay as it is?

I mean without the workspace name? Or should it also have the workspace name? (if so it's not a big change, one-liner)

Correct, for the money request report it should be without the name. Can we also update IOUTests to cover this by any chance?

@mountiny Could it be done in a follow-up? Btw as it's only affecting the Sidebar and Option Row (SidebarUtils and OptionListUtils) does it really have to be covered in IOUTests?

It can be a follow up, the tests should make sure the message is correctly composed for the LHN, but yeah it might be better for different test file

PR opened for the review https://github.com/Expensify/App/pull/27700

@mananjadhav can we please get the above reviewed? TY!

@mananjadhav bump

Ah, actually I see your response a couple of hours ago in the PR. Thanks, let's stay focused on this as we'd like to close the loop on this issue this week.

I'll be on top of this one.

@mananjadhav bump on where we're at here?

Merged and on staging!

@mananjadhav Do you mind kicking off the BZ checklist?

Payment summary: $500 to @mananjadhav based on PR review.

Still waiting on the checklist and then we can close this out.

I am not sure if we should treat this as a regression as I couldn't find a PR where we had this messaging requirement. @mountiny do you have that? Hence, I don't have a specific offending PR.
But I do feel we should add a regression test. QA Steps from the PR look good to me.

@mananjadhav I agree finding the regression for this can be tricky due to complexity of the LHN code
Can you comment the steps here so its easier for the bugZero assignee to handle? Thanks!

👋 Did the work for this issue break the iou/expenseReport preview logic?

It should be:

[%displayName% || %workspaceName%] owes £21.96
%firstName%: requested £5.00 for [%merchant% || %comment%]

I.e
IOU Report

Jeff Banks owes £21.96
Tom: requested £5.00 for Thursday Lunch

Expense Report

Duraflame owes £21.96
Tom: requested £5.00 for Home Depot

Great reason that we need a regression test for this case. @mananjadhav do you mind suggesting one please?

Hm, and another one. Why isn't this reportAction coming from the reimburser who clicked Pay? We're now using the workspace name, so that means there's no audit history of who actually paid an expenseReport on behalf of the company. That's not great for compliance, we need to fix that as well please!

Regression Test proposal:

Login to the app in two devices - one as a workspace member (assume userA) and the other as the owner (ownerB).

As the member, request money (assume $50) from the workspace (example controlRoom)

As the owner pay for the request.

As the member you should see the policy expense chat in LHS as well as preview as:
<workspace-name> paid <amount> <payment-method>
With our example it would:
controlRoom paid $50 elsehwere

@mountiny @JmillsExpensify ^
Also should we create a new issue for @trjExpensify's comment ?

I agree with Manan that this PR did not touch the logic of who the action is coming from.
And it feels like the subscript in of the paid expense report, that could be mixture of the backend changes to return both participants in the expense report and this change.
Either way we made this logic exteremely brittle depending of various things and these never ending regressions are consequence of it. I am not sure how to tackle this.
@koko57 we could try to abstract away some of the logic to determine to LHN preview messages and then create unit tests for that method based on various scenarios of the reports, would that be feasible?

@trjExpensify on your comment: https://github.com/Expensify/App/issues/26669#issuecomment-1760229054 could you please explain what is wrong here? My PR is only adding "[LAST_ACTOR_NAME]:" where necessary (it was originally also adding the workspace name for the workspace requests https://github.com/Expensify/App/pull/27700#issuecomment-1734999067).
@mountiny @trjExpensify So we want to display a different message in the chat (with the payer's name) and the workspace name in the sidebar?

@koko57 I dont think this comes from your PR as it tested well there, there must have been some other change. However, if you have time to investigate that would be helpful
And yeah you are correct, in the LHN we should show the Workspace paid, but in the expense report itself for auditing purposes we should show which person actually paid cc @trjExpensify

And yeah you are correct, in the LHN we should show the Workspace paid,

You're talking about the title of the expenseReport in the LHN, yeah?

Both of these

Ah, so no.. the preview is of the report action added to the report and should come from whichever user took the action.
When someone pays an expenseReport:

The reportAction added to the report comes from the reimburser who paid
The LHN title updates to "%workspaceName% paid %reportTotal%"
The LHN preview shows (1).

I.e
Report Action
Tom Rhys Jones 11:58am
paid $50.00 elsewhere
LHN
Duraflame paid $50.00
Tom: paid $50.00 elsewhere

Ah I missed it with the workspace chat preview

Then there its correctly saying the %workspaceName% paid this

Shall we create a fresh issue then? For what it's worth, I like this idea from @mountiny:

@koko57 we could try to abstract away some of the logic to determine to LHN preview messages and then create unit tests for that method based on various scenarios of the reports, would that be feasible?

P.S. Regression test has been added.

$500 payment approved for @mananjadhav based on this summary.

@JmillsExpensify @mountiny should I start working on this one? 🙂 Will a new ticket be created?

New issue would be helpful and I can help with the review.

Yes @trjExpensify would you be able to create a new one for this? You will be the best in defining exactly what needs to be done

@koko57 can you write a message on the new issue so I can assign you? Thanks! https://github.com/Expensify/App/issues/30042

Thanks this can be closed then ❤


JavaScript heap out of memory, after adding Sentry to my Vite-React Project - GitLab

Environment
Versions:
"@sentry/react": "^8.13.0",
"@sentry/vite-plugin": "^2.20.1",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"@vitejs/plugin-react": "^4.3.1",
"@vitest/ui": "^1.6.0",
"vite": "^5.3.1",
"vite-plugin-svgr": "^4.2.0",
"vitest": "^1.6.0"

Steps to Reproduce

Somewhat simple Vite-React Project using Typescript, yarn.
Major dependencies: MUI, react-router-dom, react-redux, google-libphonenumber etc.
Config files as mentioned below.
Build project using vite build --mode production on Gitlab

vite.config.ts
export default defineConfig(({ mode }) => ({
  plugins: [
    react(),
    svgr(),
    mode === 'production' &&
      sentryVitePlugin({
        org: 'org',
        project: 'project',
      }),
  ],
  build: {
    sourcemap: true,
    rollupOptions: {
      /** To suppress the following `node_modules` sourcemap warning:
       * Error when using sourcemap for reporting an error: Can't resolve original location of error.
       */
      onwarn(warning, defaultHandler) {
        if (warning.code === 'SOURCEMAP_ERROR') return;
        defaultHandler(warning);
      },
    },
  },
}));

sentry.ts -> injected in main.tsx
import * as Sentry from '@sentry/react';
import { environment } from 'src/environments/environment';
import { EMode } from 'src/environments/mode.enum';

Sentry.init({
  environment: environment.MODE,
  enabled: environment.MODE === EMode.production,
  dsn: 'https://REDACTED.dns',
  integrations: [Sentry.replayIntegration()],
  // Session Replay
  replaysSessionSampleRate: 0.1, // This sets the sample rate at 10%. You may want to change it to 100% while in development and then sample at a lower rate in production.
  replaysOnErrorSampleRate: 1.0, // If you're not already sampling the entire session, change the sample rate to 100% when sampling sessions where errors occur.
});

Expected Result
Should build, generate sourcemap, and upload to sentry.
Actual Result
Adding sentryVitePlugin consumes too much heap memory. I know it could be a problem with the Gitlab runner, but the sentryVitePlugin shouldn’t occupy much of the memory anyway.
It works fine if I remove the plugin.
Failed Build Logs on Gitlab:
yarn build:production
yarn run v1.22.19
$ export NODE_ENV=production && tsc --noEmit && vite build --mode production
vite v5.3.1 building for production...
[sentry-vite-plugin] Info: Sending telemetry data on issues and performance to Sentry. To disable telemetry, set `options.telemetry` to `false`.
transforming...
node_modules/google-libphonenumber/dist/libphonenumber.js (38:206): Use of eval in "node_modules/google-libphonenumber/dist/libphonenumber.js" is strongly discouraged as it poses security risks and may cause issues with minification.
node_modules/google-libphonenumber/dist/libphonenumber.js (40:350): Use of eval in "node_modules/google-libphonenumber/dist/libphonenumber.js" is strongly discouraged as it poses security risks and may cause issues with minification.
node_modules/google-libphonenumber/dist/libphonenumber.js (56:475): Use of eval in "node_modules/google-libphonenumber/dist/libphonenumber.js" is strongly discouraged as it poses security risks and may cause issues with minification.
✓ 13655 modules transformed.
rendering chunks...
<--- Last few GCs --->
[94:0x65e6f20]    44471 ms: Scavenge 2040.2 (2084.9) -> 2039.4 (2094.9) MB, 17.47 / 0.00 ms  (average mu = 0.840, current mu = 0.910) allocation failure;
[94:0x65e6f20]    46670 ms: Mark-Compact (reduce) 2045.1 (2095.5) -> 2041.9 (2083.7) MB, 1086.91 / 0.00 ms  (+ 757.2 ms in 0 steps since start of marking, biggest step 0.0 ms, walltime since start of marking 1895 ms) (average mu = 0.672, current mu = 0.53
<--- JS stacktrace --->
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----
 1: 0xcd8bd6 node::OOMErrorHandler(char const*, v8::OOMDetails const&) [/usr/local/bin/node]
 2: 0x10aedc0 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/usr/local/bin/node]
 3: 0x10af0a7 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/usr/local/bin/node]
 4: 0x12ce085  [/usr/local/bin/node]
 5: 0x12e4ba8  [/usr/local/bin/node]
 6: 0x12e664a v8::internal::Heap::HandleGCRequest() [/usr/local/bin/node]
 7: 0x12460a8 v8::internal::StackGuard::HandleInterrupts(v8::internal::StackGuard::InterruptLevel) [/usr/local/bin/node]
 8: 0x16cac2f v8::internal::Runtime_HandleNoHeapWritesInterrupts(int, unsigned long*, v8::internal::Isolate*) [/usr/local/bin/node]
 9: 0x79e94fea53f6
Aborted (core dumped)
error Command failed with exit code 134.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Cleaning up project directory and file based variables
00:00
ERROR: Job failed: exit code 1

Please see https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/512 and in particular: https://github.com/getsentry/sentry-javascript-bundler-plugins/issues/512#issuecomment-2122127809 Thanks!

Try increasing nodejs memory limit. I had similar issue in my github actions deployment script. Solved it using the following:
- name: Build the application
  env:
    NODE_OPTIONS: "--max_old_space_size=4096" # Increase memory limit for build
  run: |
    npm ci
    npm run build

Thanks @simenravnik. It worked!


Equivalent expression fails assert

I am trying to zero a page. The first ensure below passes an assert, but the second does not. I may be missing something, but I thought to pass it on.
ensures (forall a : bv8 :: a[8:4] == page ==> mem[a] == 0bv8);
ensures (forall low : bv4 ::            mem[page ++ low] == 0bv8);
Test code with come comments and context is below.
This is Boogie <IP_ADDRESS>016 on Mono 3.2.8 on Debian 3.2.8+dfsg-10.
--Michael
/* Memory is an 8 bit address space of bytes.
Providing 2^4 = 16 'pages' of 16 bytes each.
*/
type Byte = bv8;
type Addr = bv8;
type Ram = [Addr] Byte;
type Page = bv4;
var mem : Ram;
/* Zero a page, leave others unchanged. */
procedure zeroPage(page : Page);
modifies mem;
// Zero bytes of page
// First version passes assert below, it 'mirrors' the ensures for unchanged.
// Second version fails it.
//ensures (forall a : Addr :: a[8:4] == page ==> mem[a] == 0bv8);
ensures (forall low : bv4 :: mem[page ++ low] == 0bv8);
// Other pages unchanged.
ensures (forall a : Addr :: a[8:4] != page ==> mem[a] == old(mem)[a]);
procedure hv()
modifies mem;
{
call zeroPage(2bv4);
// test page is zeroed
assert (forall a: Addr :: a[8:4] == 2bv4 ==> mem[a] == 0bv8);
}

I believe the issue is that for the program above Z3 is returning unknown rather than sat or unsat so Boogie conservatively says that the assertion can fail. You can check that by passing -proverLog:queries.smt2 to Boogie and then passing that file to Z3 manually.
I tried both versions of your program with my proto-type symbolic execution tool for Boogie and both versions are shown to be correct.
As for the reason to why Z3 is behaving this way I don't know because I don't have a great understanding of how quantifiers are handled internally. However I suspect using that the first version of your program is much simpler to prove because on the only path in the program, page is known to be 2bv4 so you're essentially asking given that the following formula is assumed to be true
forall a : Addr :: a[8:4] == 2bv4 ==> mem[a] == 0bv8

can the assert
forall a : Addr :: a[8:4] == 2bv4 ==> mem[a] == 0bv8

be violated? Since you are asserting the formula that you assumed to be true is true it obviously cannot be violated.

I'm going to close this issue. Please re-open it if you have more questions.


New release

Would it be possible to fix the build and release a new version? Specially the fixes for the chances are a great and very much needed improvement that warrant a new release.

I think this issue can be closed, can’t it?

Correct, thanks!


Inconsistency in ordering of layers visually and in the actual list object

❓ Questions and Help
So I noticed something today that confused me a lot regarding how things in the LayersList are ordered.
It's easiest to provide an example – say your layers list is ordered like so: [astronaut, camera, spots]. On screen, the list is ordered like so:
spots
camera
astronaut

and the spots layer is displayed at the top of the stack.
I find this confusing since I would expect astronaut to appear at the top of the list and spots at the bottom.
So I wanted to get everyone's opinion on what ordering would make the most sense:

should the ordering match?
should new layers get appended or inserted to the list?
should the topmost or the bottommost layer be displayed at the top of the stack?

This was extensively discussed in #565 and we eventually decided it is more intuitive to have the most visible, and most recently added list on top in the viewer, even though it is the reverse order from the code. Hopefully people will be indexing into the layers list using the layer name rather than the index so it won't be too confusing


[test-triton.sh] Add an option to unskip all pytest.skip() calls

Implementation approach

Create a temporary copy of the python/test folder
Replace all pytest.skip() calls by pass by developing a script which use python ast module and make changes to the temporary copy
Run UT on a temporary copy
Unskipped run may cause slowness / hangs like behavior, a special watcher needs to be implemented. Recommended approach is to use pytest-timeout

[x] Create a temporary copy of the folder
[x] Replace all pytest.skip() calls by pass by developing a script which use python ast module and make changes to the temporary copy
[] Run UT on a temporary copy
[] Unskipped run may cause slowness / hangs like behavior, a special watcher needs to be implemented. Recommended approach is to use pytest-timeout

[x] Create a temporary copy of the folder
[x] Replace all pytest.skip() calls by pass by developing a script which use python ast module and make changes to the temporary copy
[x] Run UT on a temporary copy
[x] Unskipped run may cause slowness / hangs like behavior, a special watcher needs to be implemented. Recommended approach is to use pytest-timeout
[ ] respond to reviews

https://github.com/intel/intel-xpu-backend-for-triton/pull/1196 is not target for this issue

@AshburnLee let's implement unskips via conftest.py. Such approach will not require any source code manipulations / changes.
To unskip the tests, we can add the following code in  conftest.py:
import pytest

def pytest_configure(config):

    def unskip(reason=None, allow_module_level=False):
        pass

    skip_f = pytest.skip
    pytest.skip = unskip
    config._skip_f = skip_f

def pytest_unconfigure(config):
    pytest.skip = config._skip_f

To run pytest with custom 'conftest.py' we can use  --confcutdir=<path_to_folder_with_conftest.py> pytest parameter.

That's a better solution, let me try.

@vlad-penkin I tried your way, we can do that this way.
Only --confcutdir is not used like you described. --confcutdir allows you to specify a directory where pytest will stop searching upwards for configuration files.
So I think conftest.py & --confcutdir are two different things that is not supposed to used together.
conftest.py will always take effect to test scripts in the current dir & all the sub-dir.
So Here is my improved implementation: ...

@pbchekin I also supported this on CI, please have a look at .github/workflows/build-test.yml
Thanks~

Update:
Progress: Task starts on 6/11, review starts on 6/14, (lasted 4 workdays)
Risk: pytest-timeout works not fully as expected, spent 1.5 workday experiment on it.

Update:
Risk: unskip mode and skip mode(default) have different number of total test cases, (passed and xfail)

Conclusion:
In unskip mode, some un-skipped cases cause core-dump, which terminates the Pytest session and results in the current session stopped at NOT 100%, so there are cases that will not be executed. That is the root cause.
I got fix commit in the PR, it is validated locally, now this issue has been fixed.

Update:

Done, the requirement has been met.
core-dump cases are the same for LTS & Rolling.

core-dump cases are the same for LTS & Rolling. uploaded here https://wiki.ith.intel.com/pages/viewpage.action?pageId=3615102092

We don't need the list of failed tests in (private) wiki. Just run the workflow and check the "Upload test reports" checkbox.


Timeline should not display events where they do not have a date

The timeline appears to include events even if they don't have date information.
Actual
Events are included on the timeline even if there's no date.

Expected
Events should not be included on the timeline if there's not sufficient data.
Note
We should also correct the data for the pictured exercise

@KateMJAC @joy-ade this ticket seems to cover the general requirements for events rather than specific events related to the timeline. I understand from Tom that it was requested to remove the name blind sift and telephone assessment from the timeline for all exercises, can you please update this ticket appropriately to enable code review/testing to be done correctly.

@mbrookeswebdev l can confirm that name-blind sift should not be displayed on the exercise timeline on the Apply side. Also the telephone assessment should not be displayed on the timeline on the Apply side.

Reopened ticket as there is some issues with this and what a user and candidate experience!
As a user running an exercise around 95% of paper sift exercises are name blind - This is only a few where this is not the case. When a user sets up an exercise they select the "Name Blind Sift" option and input their dates onto a timeline.
The correct order for the timeline of events of a name blind paper sift is:

Open for applications

Close for applications

JAC contacts IAs

Return date for IAs

Name blind sift

When this is displayed n the apply side to a candidate it is displayed in the incorrect order with the Name Blind Sift date missing. The list should follow the same order as above and where it has "Name Blind Sift" it should display the month and year for the candidate

o


tests: Summary Section

Summary profile and results includes

[ ] Date of last tests taken
[ ] Bargraph of semi-quantitative performance (y-axis: scale from 1 to 5, x-axis is cognitive domain: ['Motor', 'Hearing', 'Visual']
[ ] Bargraph of semi-quantitative performance (y-axis: scale from 1 to 5, x-axis is cognitive domain: ['Learning Memory', 'Working Memory', 'Visuospatial', 'Language']

This could serve as a blueprint in the future for example chart from 43c0d71.


Minor changes

@Aniq55 please squash your commits into one from next time, it will be easier to review :)


Implement validation feedback

Overview
The domain validation is based on exceptions. In Setup domain this is handled in our Form framework using the Mud input validation mechanism. However we don't have any handling for property-agnostic validations and NO validation handling in Dashboard whatsoever. This will be a nightmare to work with during Asenovgrad.
Solution
Notifier
Implement some kind of toast notifier - Mud offers a Popover component to display the messages. We need:

Error message
Validation message
Successful message

Handle DomainException
Use try-catch to swallow any propagation of DomainException and render the message using the Notifier. This has to be done at the level of Behinds.

While not ideal this can be a robust solution if implemented uniformly. Investigation into a more centralized error handling using Blazor's ErrorBoundary components: #286


New question about Project and Azure Boards

Hi,
I and others have asked about the integration of Project and Azure Boards, and from what I understand you will be able to use the current version of the TFS Office add-on (2017 version) until you say that it is no longer supported, but no plans to deprecate it now at least.
Well, what about the "TFSFieldMapping" command? You say here at the top that it is no longer supported with Azure Devops Services (I don't care about onprem). I have been using the command the last few weeks and also I tried today and it still works. (with the 2017 version of TFS Office add-on) Or you perhaps mean that the command won't work with the new version (TFS Office add-on 2019)?
Also, you still have this text towards the end of this page:
"To add more work tracking fields or change the way fields are mapped, see Customize the Microsoft Project field mapping file. This feature is available for both Azure Boards and TFS. "
Will I be able to use the "TFSFieldMapping" command with TFS Office 2017 add-on with Azure Devops Services (Boards) or not, it certainly works right now?!
/Concerned user

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

ID: 4f6edd47-46d7-ab0d-db47-d73bc45d6b43
Version Independent ID: 6ac2ae49-0bd0-2c28-fc87-7f034dd96443
Content: Create your backlog and tasks using Project - Azure Boards
Content Source: docs/boards/backlogs/office/create-your-backlog-tasks-using-project.md
Product: devops
GitHub Login: @KathrynEE
Microsoft Alias: kaelli

We removed the Project integration in VS 2019. However, the TFSFieldMapping command will currently still work for Azure DevOps Service. It is on a path to deprecation. But we have not announced anything or have solid plans in place yet on when that will be. That is a long way of saying, you should be able to use it for now.

It is unfortunate that this didn't work properly from the start and is now being killed off due to limited use. If it didn't work correctly how are we suppose to use this. The big problem is Microsoft doesn't have a good solution for project management that is integrated with it's other products. There is not a way to track properly effort and estimates in Azure DevOps, the reports are STILL missing in Azure DevOps, Project no longer integrates with Sharepoint seamlessly. Now with this feature being deprecated we (Project Managers) have to basically track in both Project for traditional reports for our Managers and Azure DevOps for our Dev teams.


Only beta nuget packages?

Why are all the nuget packages marked as beta?

@PoisnFang  I think they are getting a release of version 2. WIP now.
https://www.nuget.org/packages/YesSql.Core

@aaronamm whst is WIP?

@PoisnFang  WIP is acronym for Work in progress.


Adhere to OS-spanning standards for placement of global configuration

At the moment, the global config file is stored at the the same location as the ArcCommander.exe. This is not endorsed under e.g. linux, and not generally the standard way in windows.
Instead, this should be changed to the standard locations for any given os, potentially using an additional library.

This is not endorsed under e.g. linux

System-wide configuration files are usually stored in /etc, so the tool can create a subdirectory such as /etc/arccommander there and safe a configuration file in that subdirectory
tools such as git seem to save the global config under what is considered the $HOME environment variable, which on my machine falls to C:\Users\Kevin. if you take a look at that directory on your machine you should see the .gitconfig file there. Many other programs also seem to create subdirectories there, prefixed with a dot. For example, ssh config files are stored in $HOME\.ssh, vscode config files in $HOME\.vscode and so on.

Thank you!
For a default config to be put in these locations, this would require kind of an installation step, right?

Depends a little on how the tool will be published. To my knowledge, a dotnet tool does not execute post install scripts after dotnet tool install ..., so for that case you can just create the necessary files on the first run or always check if one is present. you could also provide installer scripts via releases, or go as far and package installers (.deb for linux, .msi for windows, etc.)

@omaus, you addressed this, right?

@omaus, you addressed this, right?

Yep, I did. Think we can close this one, too. And reopen it if necessary. :)


[PE-D][Tester B] Name is not fully shown (cropped out)

Category:  A legitimate user behavior is not handled
Adding a person with a very long name result in the name not being able to be displayed fully, therefore raising inconvenience to user. Would suggest to either wrap the name or limit the characters length.

Labels: type.FunctionalityBug severity.Low
original: florentianayuwono/ped#9

Closed since bug is fixed in PR #226.


Update polynomial-commitments.md

Use equivalent description for point validation that is clearer given the definition of G1_POINT_AT_INFINITY in this document
Existing term "identity point" requires more outside knowledge that readers may not necessarily have

No strong opinion but I think the reason the specs say "identity" there is because that's the term that the IETF draft uses: If xP is the identity element, return INVALID


XmlTool & XV2 Xml Serializer sort skill_item.idb by IDB_Entry IDs

I've done multiple tests with skill_item.idb file using XmlTool & XV2 Serializer, seems when the XML file is dragged into the .exe, it sorts them by IDB_Entry ID, the other IDB files are being sorted correctly by IDB_Entry ID & Type value. Sorting only by IDB entry is most likely the cause of the type values be changed. Example: Feint Crash is a Type 0 (Super Skill) after dragging into XmlTool or Serialzer its type value is changed to Type 2 (Evasive), making the skill disappear in-game. (This actually seems to be random, changing type values of different skills each time)
I've also noticed multiple entries of the same IDB are made when saved with XmlTool or Serializer, one with the edits, another base game entry, this also seems to conflict with not all entries being applied with the edits made.
I'm almost certain it's not caused by any issues on my end, as multiple users have confirmed this issue.
Apologies if this comes off a bit blunt, I don't intend it to be that way. If I'm mistaken about this issue, please let me know.

So I looked into this and it turns out the IDB file needed to be sorted by the ID AND Type, which was the cause of the issue.
It's fixed in the latest commit (not yet included in any releases, however).

Unfortunately doesn't seem to fix the skill_item.idb, while it's being sorted correctly by ID & Type, multiple entries of the same IDB entries are being created. Type values are also still changing. Example: Some Type 0 entries changing to Type 2 entries. Causing skills to be missing in-game.
Also, when applying edits to all skill_item.idb entries, IDB_Entry ID starts at 15, instead of 0.

Now fixed


Problem with encoding

There is something wrong with encoding. Go to https://pypyjs.org and write this:
print 'Witaj Świecie!'
..and hit enter. As you will see, output differs from what we expect.

I've dealt with this problem, simplest solution would be:

Get this library: http://www.onicos.com/staff/iz/amuse/javascript/expert/utf.txt
Change line no. 303 of pypyjs.js file to: var c = String.fromCharCode(x < 0 ? (x + 256) : x);
Change line no. 306 of pypyjs.js file to: this.stdout(utf8to16(stdout_buffer.join("")));


Removed clientId/clientSecret and updated tests

Since clientId and clientSecret are no longer needed in the API, I moved them from the env and test suite. I also updated the snapshot so it will not fail when running the test.
Any comments much appreciated!
/Tanet

Thanks 👍


Remove beta headers for OXXO public launch in MX

@bonsanto-stripe Can you review this PR? We can't test it and merge it until the actual gating / beta headers are removed, however.


markup_fmt dprint plugin deletes astro-seo code

It basically deletes all of this code, I have provided an example file to reproduce.
exampleSeo.astro:
---
import { SEO } from "astro-seo";
const { title, customDescription, bannerPath } = Astro.props;
export interface Props {
    title: string;
    customDescription?: string;
    bannerPath?: string;
}
// SEO SETTINGS
const descr = customDescription ?? "A Nice Opensourced Client.";
const url = "https://teaclient.net";
const banner = bannerPath ?? "/Banner.webp";
const favicon = "/Favicon.webp";
const theme_color = "#bc21ff";
const language = "en-us";
---

<!doctype html>
<html lang="en">
    <head>
        <SEO
            title={title}
            description={descr}
            twitter={{
                title: title,
                creator: "@TeaClientMC",
                image: banner,
                card: "summary_large_image",
                description: descr,
            }}
            openGraph={{
                basic: {
                    title: title,
                    type: "website",
                    image: banner,
                    url: url,
                },
                optional: {
                    locale: language,
                    description: descr,
                    siteName: title,
                },
                image: {
                    url: banner,
                    secureUrl: url + banner,
                    type: "webp",
                    height: 30,
                    width: 60,
                    alt: "TeaClient Banner",
                },
            }}
            extend={{
                link: [
                    { rel: "icon", href: favicon },
                    {
                        rel: "apple-touch-icon",
                        type: "image/x-icon",
                        href: favicon,
                    },
                    { rel: "sitemap", href: "/sitemap-index.xml" },
                ],
                meta: [
                    { name: "theme-color", content: theme_color },
                    { name: "darkreader-lock" },
                    {
                        httpEquiv: "ContentSecurityPolicy",
                        content:
                            "Content-Security-Policy: default-src 'none'; script-src 'self'; connect-src 'self'; img-src 'self'; style-src 'self' https://cdn.cloudflare.com;",
                    },
                    {
                        name: "viewport",
                        content:
                            "width=device-width, initial-scale=1.0, shrink-to-fit=yes, viewport-fit=cover",
                    },
                ],
            }}
        />
        <meta charset="UTF-8" />
    </head>
</html>

I had to remove it for https://github.com/teaclientmc/website on wiki branch.

This has been fixed but not released.


Enphase multiple batteries - jq: too many results #17254

updated SOC jq to resolve “too many results” error where multiple enphase batteries are installed.

https://github.com/evcc-io/evcc/issues/17254

Already fixed, thanks!


[BUG] Overflowing the blogs (not responsive)

Describe the bug
Overflowing the blogs section:

not responsive in blogs

Blogs section:

overflowing the sides in the blog section:

Event section:

working fine in events (similar design and code)

To Reproduce
Website: https://www.thecyberhub.org/events
Localhost: http://localhost:3000/blogs
Expected Behavior
No response
Screenshot/ Video

Code of Conduct

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

Hello @kabir0x23 I would like to try this as my first issue ever

Hello @indiehjaerta
Sure, I am assigning you this issue.


Animation prop for Dialogs

i would like to know if you would consider adding animate.css as a depedency for you animations.
Use case : i want to change the animation of a alerts / confirms you have but i can't really do that as you transitions are already made by you in each component based on your own custom classes.
I already use animate.css (and many vuejs or bulma css users use it, even bulma talks about it on the docs), if you add animate.css as a depedency it would be easy to change animations with your ui-kit by just changing the animatio class i would pass to a component and i woun't have to import animate.css which has common animation names with you own animation names (there's at least 2 conflicts in the keyframe names here) https://daneden.github.io/animate.css/

Buefy is supposed to be lightweight and simple, I'm not adding any dependency that is not necessary.
What I can do however, is adding a prop for the animation name and you use the one you want (in that case yuo have to pass the enter and leave animation name.

@rafaelpimpa that's seems a good idea :)

Just one name is needed, you can see the default one here: https://github.com/rafaelpimpa/buefy/blob/dev/src/scss/utils/_animations.scss#L106

nice i'll try that !

Would be nice to add this to the documentation (a list of the available transition names).

@daenuprobst actually there aren't any available aside from zoom-in and zoom-out, you have to make your own 😄

Now that I look at the code and the vue doc... ;-). So it would be nice to document that there are no others - maybe add this link?. Don't know if it would be useful to many others though...

Hey I tried adding the animation as you said to b-modal. It's not working. Do we have a tutorial for the beginners? Or like include animate.css on your own and use animations from it directly something like that


Add a Gitter chat badge to README.md

algebraic-brain/hyperoop now has a Chat Room on Gitter
@algebraic-brain has just created a chat room. You can visit it here: https://gitter.im/hyper-oop/Lobby.
This pull-request adds this badge to your README.md:

If my aim is a little off, please let me know.
Happy chatting.
PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

Codecov Report

Merging #1 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master     #1   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           3      3
  Lines          99     99
  Branches       14     14
=====================================
  Hits           99     99

Continue to review full report at Codecov.

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

Badge added


how to modify the setup in PlatformIO environment?

Hi,
I'm working in VSC/PlatformIO environment on ESP32 S3.
LovyanGFX 1.1.12
lvgl 8.3.11
ILI9488  LCD 320x480
Touch_FT5x06 (I2C)
works fine.
Now I'm trying to use the SD Card attached on the LCD module.
Shared with SPI of the LCD, SD_CS is separated to GPIO 47
cfg.bus_shared       =  true;    // shared SPI bus
But it's not possible to mount the SD ( 64GB,  FAT32 format )
#ifndef SDCARD_SS_PIN
#define SDCARD_SS_PIN 47   // CS für SD Karte
#endif
#ifndef SDCARD_SPI
#define SDCARD_SPI SPI
#endif
setup()
{
....
....
pinMode(SDCARD_SS_PIN, OUTPUT);       // CS SD Karte
digitalWrite(SDCARD_SS_PIN, HIGH);    // Inaktiv
if ( ! SD.begin(SDCARD_SS_PIN, SDCARD_SPI, 25000000))    //
{
Serial.println("Fehler: SD Card Mount fehlgeschlagen");
}
else
{
.....
...
If I set
#define LV_USE_FS_FATFS  1
the following error occurs:
Compiling .pio/build/esp32-s3-devkitc-1/lib7f8/lvgl/extra/widgets/animimg/lv_animimg.c.o
.pio/libdeps/esp32-s3-devkitc-1/lvgl/src/extra/libs/fsdrv/lv_fs_fatfs.c: In function 'fs_dir_open':
.pio/libdeps/esp32-s3-devkitc-1/lvgl/src/extra/libs/fsdrv/lv_fs_fatfs.c:228:5: error: unknown type name 'DIR'; did you mean 'DDR'?
DIR * d = lv_mem_alloc(sizeof(DIR));
^~~
DDR
At the moment, I didn't find any useful hint to solve that.
Was already thinking to use a second, separated SPI channel, but I need the GPIOs for other things ...
Thanks for any useful hint
Peter

This is an older project.
Latest one is called ESP32-TUX


3x backport - Port various elixir tests

Overview
This PR backports into 3.x the following test ports

rewrite and rewrite_js (#3174)
show_documents and list_views (#3179)
security_validation (#3180)

A small fix identified during rewrite_js porting is also included (#3172)

Testing recommendations
 make elixir

Related Issues or Pull Requests
See overview

Checklist

[X] Code is written and works correctly
[X] Changes are covered by tests
[ ] Any new configurable parameters are documented in rel/overlay/etc/default.ini
[ ] A PR for documentation changes has been made in https://github.com/apache/couchdb-documentation

Thanks!


⚠ GitLab Server has degraded performance

In e1ac029, GitLab Server (https://gitlab01.its-telekom.eu) experienced degraded performance:

HTTP code: 200
Response time: 9423 ms

Resolved: GitLab Server performance has improved in ad0f465.


display-list-of-items

This PR INCLUDES :

Create the main part of the homepage that keeps the layout from the wireframe:

I had the pleasure of reviewing your code 😁, and I must say, you did a great job! Your code is DRY (Don't Repeat Yourself) and follows the KISS (Keep It Simple, Stupid) principle, which makes it easy to read and understand. Your functions are well-organized, and your logic is clear and concise.
However, I noticed that some of your class and variable names could be more descriptive. While it's essential to keep variable names short and sweet, it's also important to make them meaningful. Using names like ch-nmae or name-like  can make the code harder to understand and maintain over time. Instead, try to name your variables in a way that makes their purpose clear. For example, instead of ch-nmae, you could use movie-title.
Additionally, it's helpful to maintain a consistent pattern of naming variables throughout your code. This helps to create a logical and intuitive structure that makes it easier to follow. For instance, you might choose to use camelCase for function names and snake_case for variable names.
Overall, your code is excellent, and I appreciate your hard work. Keep up the great work, and don't hesitate to reach out if you have any questions or concerns.
Best regards 😎


Inline service registries into ManualsController

This is similar to #865 & #872, but for the ManualsController instead of the SectionAttachmentsController or SectionsController. The overall aim is to reduce the levels of indirection in the code to make it easier to follow. In some cases, this means temporarily introducing duplication, but we're confident that in the long run this will make it easier to identify better abstractions to remove that duplication.
The net effect is to inline most of the methods from AbstractManualServiceRegistry and its two sub-classes, ManualServiceRegistry & OrganisationalManualServiceRegistry into ManualsController.
I've tried hard to break the overall refactoring down into small steps to give as much confidence as possible that I haven't broken anything; the tests all pass after every commit.
Note that I improved the test coverage of a couple of scripts in #877 in order to give me more confidence I hadn't broken them in this PR. Although I've also applied the refactorings to SectionReslugger, this class is not tested. However, since the script which uses this class is already broken (see #851), I think this is OK.

@chrislo: Thanks.
Rebasing against master and force-pushing in preparation for merging.

Rebasing & force-pushing again now that CI builds seem to be working again.


Generator implements InputRange

Since std.concurrency.Generator is a class already, I made it to implement std.range.interfaces.InputRange without having to call inputRangeObject().

Uh oh, it seems i need to replace that uint index with size_t...

Now seems to work also in 64bit.

@dukc: mind the test failures:
Enforce whitespace before opening parenthesis
grep -nrE "(for|foreach|foreach_reverse|if|while|switch|catch)\(" $(find . -name '*.d') ; test $? -eq 1
./std/concurrency.d:1715:        for(; !empty; popFront())
./std/concurrency.d:1718:            if(broken) break;
./std/concurrency.d:1726:        for(size_t i; !empty; ++i, popFront())
./std/concurrency.d:1729:            if(broken) break;
./std/concurrency.d:1836:        foreach(i; 0 .. 10) yield(i);
make: *** [style] Error 1

Also you might want to consider to use the CodeCov extension (or click on the link, or run the coverage locally) as opApply is uncovered.

I have no idea what those lixus failures are about... Does somebody have ideas?

I have no idea what those Linux failures are about... Does somebody have ideas?

-><EMAIL_ADDRESS>You can click on "Deprecate" for specific builds, but the auto-tester will also perodically iterate through the entire queue and retest your PR ;-)

@wilzbach @JackStouffer
CircleCI appears, as of writing, to be stuck in it's execution. I've checked back many times, never seeing it completed.
Otherwise, ready for further discussion.

CircleCI appears, as of writing, to be stuck in it's execution. I've checked back many times, never seeing it completed.

Yeah I have observed this a couple of times already since the S3 outage this week. Don't worry about it.

@wilzbach I have answered your concerns of the code 5 days ago, let's continue discussion?

@dukc people get around to PRs when they can
Seb is currently off the grid and probably will be for the rest of the week.

Ok. Just wanted to make sure this wasn't forgotten.

This got too old so i close. I will probably reboot it.

link to new pr: #5309


SonarCloud code coverage analysis

Sonarcloud doesn't see the code coverage of the unit test. Add the necessary commands in the action yml file.

Done.


[sql lab] Update event handler name

Update SqlEditor database change event handler name to be more specific.

LGTM, welcome on board Grace!

woohoo!!  excited to see you ship your first change Grace!   welcome aboard :-)

merge into master

squash and merge.


Separate out setup for initial conditions and main HYDRAD script

The heating model requires the background heating as determined by the initial conditions. Thus the initial conditions must be configured and run before the heating model can be configured.
To account for this and to be more modular, should separate out the initial conditions and HYDRAD configurations into two separate methods.
If need be, could have another method sit on top of this that does everything if needed.

Fixed by #16


Update samples to instantiate clients via Google::Cloud::[Product].new

Currently, samples instantiate product service clients using this syntax to be consistent with the Official google-cloud-ruby documentation
require "google/cloud"

gcloud = Google::Cloud.new
translate = gcloud.translate

Samples should be updated to use the following syntax instead:
translate = Google::Cloud::Translate.new

This has been completed.


Fix homework readme(s)

Fix homework 05 assignment and clean homework 08 download reference

Addresses issue 10


Allow theme configuration to partially override css

@phinatic I think it will be better to make style.css configurable. Rename style.css into main.css. Then, rename custom.css into style.css.  Also, don't just import the css into a single page. Instead add it into partials/header.html All page use this header. So, they will get the changes.

I made the requested changes 👍


Fix blocking calls

I've taken the approach of adding the VERSION to the constants (similar as HA does) and import that in the API calls instead of doing (expensive) file reads on manifest.json.
It does mean that the constant needs to be updated with the latest version number upon release, just as manifest.json needs to be updated.
Tested locally, works fine. Fixes #117

Tnx for the fix


[Bug]: The action selector for setInterval is broken

Is there an existing issue for this?

[X] I have searched the existing issues

Description
The action selector for set interval asks the user to write the callback instead of letting them select it from a dropdown like we do everywhere else
if you enter showAlert in the callback, the action selector gets broken
Steps To Reproduce

Drag a button
Configure setInterval on Click
Add showAlert('test') in the callback

Public Sample App
No response
Version
Cloud

@rimildeyjsr could you confirm if your refactor solves this issue?

i will take a look at it

@rimildeyjsr could you add an estimate to this task?

Fixed in e94e1b6
Please test https://ce-19689.dp.appsmith.com/

This is fixed


Create a PR checklist (Github template)

Added a "PR Checklist" to the PR template file used by Github.
The list is pretty small right now but I anticipate it to grow over time.
Motivation:
The intention here is that we get reminded of specific tasks we need to do before or shortly after we merge.
Since we're all just human we tend to forget some (sometimes) important steps.
Modifications:
I add the list to the end of the existing PR template we're using for Github.
Result:
We have a list that we can (and should) check when we open / before we merge a PR.
Resolves rdar://116056127

@swift-ci please test


header custom checkbox indeterminate mode

I'm submitting a ...  (check one with "x")
[ ] bug report => search github for a similar issue or PR before submitting
[ ] feature request
[ ] support request => Please do not submit support request here, post on Stackoverflow or Gitter

Current behavior
Now we have the variable allRowsSelected.
That tells us only if all rows in the table are selected or not.
Expected behavior
get the selected rows length to the header of checkbox column.
Reproduction of the problem
I want to display the box to indeterminate mode
Depending on how many of the list were selected
What is the motivation / use case for changing the behavior?
Add or change an event to the header checkbox or add new variable that get you  Possibility to know or display the box to indeterminate mode Depending on how many of the list were selected .
Please tell us about your environment:
all environment

Table version:
13.0.1

Angular version:
angular 6

Browser: [all | Chrome XX | Firefox XX | IE XX | Safari XX | Mobile Chrome XX | Android X.X Web Browser | iOS XX Safari | iOS XX UIWebView | iOS XX WKWebView ]

Language: [all | TypeScript X.X | ES6/7 | ES5]

I have also the same issue. Please someone advise us...


Model Weights

Hi,
Good job. I wanna use your code to evaluate on different images. Can you provide the weights of the model for testing.

You can download the checkpoint trained on SPL2018 from Google Drive:
https://drive.google.com/file/d/1HcTK2pLXEIuGrUXCw69AbOVC5JaFJk3J/view?usp=sharing
Run test.py to test the model on your data. If you have any questions, please contact me.


Auth modal not appearing on thor

TSG is scheduled to test Mexican/Brazilian experience this afternoon so let's please get this deployed to thor after it's resolved.

Will take a look in just a minute. My hunch is that the Modernizr patch we applied a little ways back might no longer be working. It looks like the grunt-modernizr released a new stable release that supports Modernizr v3, so I'm going to see if we can get back on that.

This is currently working on prod currently just FYI.

The Jenkins job for deploying to Thor shows an error when building the Modernizr file. So presumably our next deploy to staging or production might end up like this as well:
DEBUG [71957d95] 	Running "modernizr:all" (modernizr) task
 DEBUG [71957d95]
 DEBUG [71957d95] 	Looking for Modernizr references
 DEBUG [71957d95]
 DEBUG [71957d95] 	>> 2 matches in js/reportback/Reportback.js
 DEBUG [71957d95] 	>> filereader, json
 DEBUG [71957d95]
 DEBUG [71957d95] 	>> 1 match in scss/content/_finder.scss
 DEBUG [71957d95] 	>> checked
 DEBUG [71957d95]
 DEBUG [71957d95] 	>> 1 match in scss/content/_win-module.scss
 DEBUG [71957d95] 	>> svg
 DEBUG [71957d95]
 DEBUG [71957d95] 	>> 1 match in scss/patterns/_statistic.scss
 DEBUG [71957d95] 	>> placeholder
 DEBUG [71957d95]
 DEBUG [71957d95] 	>> 1 match in<EMAIL_ADDRESS> DEBUG [71957d95] 	>> svg
 DEBUG [71957d95]
 DEBUG [71957d95] 	>> 1 match in<EMAIL_ADDRESS> DEBUG [71957d95] 	>> svg
 DEBUG [71957d95]
 DEBUG [71957d95] 	>> 2 matches in node_modules/dosomething-modal/src/modal.js
 DEBUG [71957d95] 	>> cssanimations, target
 DEBUG [71957d95]
 DEBUG [71957d95] 	>> Ready to build using these settings:
 DEBUG [71957d95]
 DEBUG [71957d95] 	>> addTest, html5printshiv, testProp, fnBind
 DEBUG [71957d95] 	>> Your file will be minified with UglifyJS
 DEBUG [71957d95]
 DEBUG [71957d95] 	Building your customized Modernizr
 DEBUG [71957d95] 	Fatal error: Cannot read property 'replace' of undefined

So, it looks like we updated to the latest Modernizr version already in an earlier PR. Unfortunately, it looks like this latest version errors out when passing custom tests in the build... I think the best short-term fix is to roll back to the old patched version we were using and wait on Modernizr v3 to get a bit more stable.

@mikefantini Just deployed this fix to Thor, and things seem to be working again.

Thanks @DFurnes!


Add support for setting dest_range

Hi
we use this module and we were forced to fork it, because we wanted to set dest_range to a specific ip.
It would be great if we could use this module and set dest_range as a module's input.
Thanks !

That sounds like it could be a relatively simple PR, if you have already done the legwork, why don't you provide a PR for that?  Cheers!

Hi
yes, it's true :)
I will do it in a few hours, for the moment, I send you the diff :) But I will do the PR.
Thanks !
dest_range.diff.txt


Eosio rpc account response structure update

Updated EosioRpcAccountResponse object that maps get_account RPC response
Updated tests

I've found an account with extensive permission structure and added it to the unit test and updated my model accordingly:
"accounts": [                       {                         "permission": {                           "actor": "eosaccount1",                           "permission": "active"                         },                         "weight": 1                       },                 ],                 "waits": [                     {                         "wait_sec": 259200,                         "weight": 1                     },                     {                         "wait_sec": 604800,                         "weight": 2                     }                 ]


Spaces: Gradio interface title and description is invisible in darkmode

Example Space:
https://huggingface.co/spaces/flax-community/FT5-demo
Dark mode:

Light mode:

Tagging @aliabid94 here as well to see if a styling fix can come from the Gradio library itself

It's fixed ! Dark theme now works well in Gradio Spaces


double-beep: Watch +17722174206

double-beep requests the watch of the watch_number +17722174206. See the MS search here and the Stack Exchange search here.

Approved by Makyen in Charcoal HQ


updated log4j version to 2.17.1

Issue #, if available: N/A
Description of changes: Updating Log4j to the recommended version
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

LGTM


V2.0.0

Codecov Report

Merging #58 (9bdd450) into main (711741f) will decrease coverage by 19.46%.
The diff coverage is 79.77%.

@@             Coverage Diff             @@
##             main      #58       +/-   ##
===========================================
- Coverage   93.06%   73.60%   -19.46%
===========================================
  Files           8        9        +1
  Lines         620      860      +240
  Branches       88      111       +23
===========================================
+ Hits          577      633       +56
- Misses         25      196      +171
- Partials       18       31       +13

Impacted Files
Coverage Δ

esparto/_content.py
55.50% <20.00%> (-37.28%)
:arrow_down:

esparto/_publish.py
33.80% <23.53%> (-54.60%)
:arrow_down:

esparto/_adaptors.py
60.00% <71.43%> (-40.00%)
:arrow_down:

esparto/_options.py
71.19% <71.70%> (-18.47%)
:arrow_down:

esparto/_utils.py
67.50% <80.00%> (-25.09%)
:arrow_down:

esparto/_layout.py
92.24% <95.56%> (+0.53%)
:arrow_up:

esparto/__init__.py
100.00% <100.00%> (ø)

esparto/_cdnlinks.py
100.00% <100.00%> (ø)

esparto/_contentdeps.py
75.00% <100.00%> (-25.00%)
:arrow_down:

... and 6 more

Continue to review full report at Codecov.

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


update api name in README

Just a minor change after the previous commit.

Great, thank you! Documentation is very important.


cgroup cleanup hangs waiting for its own subshell

I'm consistently getting hangs while stopping services with cgroup cleanup enabled. Through debugging I have determined that cgroup_get_pids() finds 2 pids each iteration of the loop. One is the parent openrc shell ($$) and the other is the subshell that cgroup_get_pids() is running in due to process substitution. This means that cgroup_cleanup() spins until the timeout as cgroup_get_pids() always returns a pid.
Replacing cgroup_get_pids() with this fixes the issue:
cgroup_get_pids()
{
        local cgroup_procs p pids self
        cgroup_procs="$(cgroup2_find_path)"
        read -r self _ < /proc/self/stat
        [ -n "${cgroup_procs}" ] &&
                cgroup_procs="${cgroup_procs}/${RC_SVCNAME}/cgroup.procs" ||
                cgroup_procs="/sys/fs/cgroup/openrc/${RC_SVCNAME}/tasks"
        [ -f "${cgroup_procs}" ] || return 0
        while read -r p; do
                [ "$p" -eq $$ ] || [ "$p" -eq "$self" ] || pids="${pids} ${p}"
        done < "${cgroup_procs}"
        printf "%s" "${pids}"
        return 0
}

I'll try to get a proper PR up soon.

@matthew-sharp  Can you take a look at #409 and let me know what you think about it?
It might be better to use something like that and avoid process substitution in this case.
Thanks,
William

Sure. I had a look and think your PR is the better fix.


add logo folder inside docs folder

Added the logo folder inside docs folder to keep main folder clean.

Hi @mariannovotny I've added the armada logos into the folder, can I trouble you to check if it's appropriate? Thank you😊

Hi @stackedsax, I've redone the PR from the previous PR #833. I wonder if this works better now?

Thank you @jimbobby5! 😊

Thank you @robertdavidsmith! 😊

Thank you @c-rindi!


Update README.md

Add alternative loaders: [...] variant which worked for me.

Hey man, config suggestion loaders: ["style-loader", "css-loader", "sass-loader"] failed in my setup.
Added a commented other variant which worked for me and may well work for the others.
<EMAIL_ADDRESS>Cheers!

Thanks for the suggestion, but this is clearly related to your setup. Your suggestion won't work with webpack 2.

Why not at least mention it (a side note or something) at least? Basically the choice of this Webpack version wasn't particularly my choice, I was tweaking a copy of another guy's open source project.


Update Simplified Chinese & Traditional Chinese Translations

This PR updates Simplified Chinese and Traditional Chinese translations for better quality
Simplified Chinese works by: @Anteness and me
Traditional Chinese works by: @yelandiealma
(Sorry, I got the wrong branch earlier.)

In order to organize and discuss the work of traditional Chinese translation, I set up a Discord sever(VRC相關繁中翻譯討論), and the changes of traditional Chinese are all decided after discussion by the server members, thanks to the members!

Thank you! This translation fix will be reflected in the next version!


Can't send even using API's simple example

Hello,
SendGrid looks like a good tool. I was able to create a dynamic template and test sending it with no issues. When I try using API, the email is never sent.
I installed latest version of Sendgrid<EMAIL_ADDRESS>I am following your directions to run even the simple send API example. Here is my code:
.env file contains the API_Key:
SENDGRID_API_KEY='SG.........RF2eQ'
index.js contains the following:
require('dotenv').config();
const sgMail = require('@sendgrid/mail');
sgMail.setApiKey(process.env.SENDGRID_API_KEY);
const msg = {
to<EMAIL_ADDRESS>from<EMAIL_ADDRESS>subject: 'Sending with Twilio SendGrid is Fun',
text: 'and easy to do anywhere, even with Node.js',
html: 'and easy to do anywhere, even with Node.js',
};
sgMail.send(msg);
Please help, as it's getting on my nerves, how simple it seems to be, yet not working.
Again, I am able to create dynamic templates, send them using Test (and even substituting tags)... no issues whatsoever.
I deleted and created API_Key 3 times to ensure, I actually have the correct key.
Thanks for advising.
Sherif

For the above, it looks like all those emails are quarantined, any idea why? the above email is an office 365 account.
Now when I try sending out my actual email (with substitution and image - simply a birthday greeting message) it also gets quarantined when going to office 365 account, and never delivers when sending to a yahoo account. Please advise. Thanks!

I faced the same issue solvled by :
1- npm i --save nodemailer nodemailer-sendgrid-transport
2-  to send email
const nodemailer = require('nodemailer');
const sendgridTransport = require('nodemailer-sendgrid-transport');

const transporter = nodemailer.createTransport(
    sendgridTransport({
        auth: {
            api_key:
            process.env.SENDGRID_API_KEY        }
    })
);

function sendEmail(mailOptions) {
    transporter.sendMail({
        to: mailOptions.to,
        from: mailOptions.from,
        subject: mailOptions.subject,
        html: mailOptions.html
    })
        .catch(err => {
            const error = new Error(err);
            error.httpStatusCode = 500;
            return next(error);
        });
}

Hello @sherif2011,
Thanks for submitting a GitHub issue! We are very sorry that you are running into this problem. In order to better serve you, as this does not present itself as a library specific issue, we would like to ask that you reach out to our support team at https://support.sendgrid.com.
Thank you!
SendGrid DX Team


Create unit test guide and best practices

look at create-react app guide

Find unit test strategy doc from either create-react app guide or elsewhere. @maheese will look for this doc.


Use reactor-bom instead of managed dependencies

This PR will fix this issue: https://github.com/micronaut-projects/micronaut-core/issues/6515.
On top of that, I did some cleanup and moved some versions from gradle.properties to Gradle Version Catalog to align with the current micronaut-project-template standard.

@donbeave thanks for the PR.
@timyates can you check this and incorporate this to 2.5.x branch. Thanks!

@sdelamo I don't believe we can do this for 3.8.0, as it removed the compat reactor libs from the catalog.
We can do it for 4.0.0 though

Thanks @donbeave 😎
Superseded by https://github.com/micronaut-projects/micronaut-reactor/pull/248 which targets Micronaut 4.0.0 and uses the latest build plugins


$uibModal injects $modalInstance instead of $uibModalInstance

I'm currently using ui-bootstrap version '0.14.2', I created a modal associated with a controller, I tried to inject $uibModalInstance as in the docs, but I get an Unknown provider error, while simply injecting $modalInstance works, this might have to be updated.
Thanks

@SamiTriki, in the future, if you think you've found a bug, please follow these instructions.
Unfortunately, if you think you have found a bug and do not follow the above instructions within a reasonable amount of time, we will close the issue due to lack of activity.
Please try against a build from master as we have removed all deprecated code in the 1.0 SNAPSHOT release.  You can perform a custom build by cloning the repo and executing npm install followed by grunt.

In 0.14.3, $uibModalInstance support was added.

Cheers


Documentation on how to replace a display manager

Description
First of all, thank your for you work!
Asahi Linux comes with Fedora+SDDM by default, and it took me some time to figure out how to set up a unified login. Would it be beneficial to add this info to the documentation? as i've seen several questions on this topic
What i ended up doing was configuring SDDM to auto login (also possible with greetd) and then exec-once hyprlock:
Add this to /etc/sddm.config.d/kde_settings.conf:
[Autologin]
Session=hyprland
User=MY_USER_NAME

NOTE: run whoami and replace the output with MY_USER_NAME

Add exec-once=hyprlock || hyprctl dispatch exit to ~/.config/hypr/hyprland.conf

There is a splash tough as described in: https://github.com/hyprwm/Hyprland/issues/5832#issuecomment-2090662706 (even with a empty config + a color as background to minimize computation). Not sure if there is an solution to this?

A display manager has the difficult and nuanced task of creating and managing a user session.
The login method is just a very small part of it.
This method works ok, if you want to use hyprlock as a login screen when you start your computer.
But it does not replace the display manager.
If you think this should be in the wiki (I am not sure if it is necessary), feel free to create a pull request in https://github.com/hyprwm/hyprland-wiki yourself.

There is a splash though as described in: hyprwm/Hyprland#5832 (comment) (even with a empty config + a color as background to minimize computation). Not sure if there is an solution to this?

@sand4rt you can try the --immediate-render flag to start hyprlock. Could make this a bit smoother.

@PaideiaDilemma thanks for the replies

A display manager has the difficult and nuanced task of creating and managing a user session.
The login method is just a very small part of it. This method works ok, if you want to use hyprlock as a login screen when you start your computer. But it does not replace the display manager.

Good to know! I don't mind having SDDM installed, just wanted to have a single login screen and login once when i boot. Not sure how secure this is BTW?

you can try the --immediate-render flag to start hyprlock. Could make this a bit smoother.

It does make it a little bit smoother but the splash is still there unfortunately

Not sure how secure this is BTW?

I can think of two security relevant problems:

SDDM autologin launches you into the session right away. This is a risk in and of itself.
There is a timeframe where hyprlock has not locked the session yet and Hyprland accepts normal keybinds and input. That is obviously bad, as you could theoretically kill hyprlock before it actually locks.

I was already concerned about your second point. Is there a possibility that Hyprlock can deal with this?

No, the compositor would need to implement a way to basically start locked, which would be out of protocol.
It would also introduce relevant side effects for startup that might beak stuff.


Scrolling by scroll-wheel in Firefox is exceeding slow

Visit http://emberjs.com/list-view/ with Firefox and try to scroll using your mouse's scroll wheel. The view will only scroll by the tiniest amount. Works correctly in Chrome and IE 11.
Firefox version: 37.0.1

Closing in favor of #91 Thanks for the report!


Get all values from different arrays.

Hi! I am working on a project where i want to display the same value from every array from an API in composer.
Something like this:
[
{
"name": "string",
"startTime": "DateTime"
},
{
"name": "string",
"startTime": "DateTime"
}
]
how do i show both of the names in Bot composer, for each item maybe? i´ve tried it but dont know how

The Microsoft Bot Framework team prefers that how to questions be submitted on Stack Overflow. The official Bot Framework Github repos are the preferred platform for submitting bug fixes and feature requests.

Hi @axelekenberg
The simplest way is to use the select prebuilt function from adaptive expressions.
Let's say your object was called 'names', such as:
{
  "names": [
    {
      "name": "name1",
      "startTime": "DateTime"
    },
    {
      "name": "name2",
      "startTime": "DateTime"
    }
  ]
}

Using the expression select(names, x, x.name) would give you the results:
["name1","name2"]


Fix zip file opening twice

Fixes #42329
Fixes #48697

I wonder if it's correct to remove this one. godot_open is the one that minizip will call internally, and godot_close is used to close the handle. Maybe it's the other open that we should remove or properly close, before letting minizip do its own logic of open/read/close? I'm not familiar with the internals of minizip though so maybe it's not necessary.

See also core/io/zip_io.cpp which uses a similar pattern where the zopen_file function will call FileAccess::open (but there the opaque FileAccess data is not open beforehand).

See also core/io/zip_io.cpp which uses a similar pattern where the zopen_file function will call FileAccess::open (but there the opaque FileAccess data is not open beforehand).

Oh, this is proper in logic. I will modify for this

Note that ZipArchive::try_open_pack likely has the same issue of double open too.

I just noticed that there's also this PR which relates to the same code, probably trying to solve a similar issue: #40303. This code is a bit tricky as I don't know any current maintainer who is familiar with this code, so it's hard to assess changes.

LGTM.

Thanks!

Cherry-picked for 3.4.

Cherry-picked for 3.3.1.


OIDC/OAuth2 authentication support

Added support for performing JWT-based user authentication (#2). The service API just validates that the provided Bearer token is issued by the configured OIDC service, the token is valid (calls introspection endpoint), and optionally can also check for specific values in audience (aud) and scope (scope) claims.
Note that the authentication just permits the request but does not associate the executed task with that specific user.
To verify that the token has not been invalidated before expiring, Funnel server also calls the introspection_endpoint defined in the OIDC configuration JSON (unless it's missing from there). For this call, ClientId and ClientSecret (specified in the YAML configuration file) are also sent in Basic authentication format (unless the client information is not defined in the configuration file).
The command-line client picks the JWT value from environment variable: FUNNEL_SERVER_BEARER. However, when there are also Basic credentials defined in the environment variables, these will be preferred over JWT.
Basic authentication is still supported. Note that RPC service (provided at port 9090) goes through the same authentication validation steps. Therefore, enabled OIDC-based authentication without Basic authentication credentials is problematic, since the server's RPC client would also need a JWT. To overcome this obstacle, the server automatically generates and adds Basic authentication credentials (see: cmd/util/config.go), which will be used with the RPC client. In addition, now the configuration loader also checks that RPC client configuration also has credentials defined (in the file) when at least one Basic credential is defined.
Other minor comments:

used github.com/lestrrat-go/jwx library for parsing JWT and loading JWK keys: the good part of this library is that it provides a cache for storing JWK keys and refreshing them periodically after 15 minutes.
added problem logging using fmt.Print for rare scenarios. Not sure if this is the best practice in this project, at least there are something to rely on for debugging.
added website documentation page for OAuth2 authentication, demonstrating how to configure.

Feel free to comment, change, or make recommendations.

I updated the PR description to include the fact that now the OIDC introspection_endpoint is also called on validated tokens to make sure the token has not been invalidated before expiring.

I updated authentication test TestBasicAuthFail() in tests/auth/auth_test.go. I noticed that my code changed the status code from 403 (PermissionDenied) to 401 (Unauthenticated) when user does not provide credentials in the request. Although it's a minor API change, I find it more correct than the 403 status.
I also reviewed linter errors, and fixed one linter issue in my changes.


Fix test-process.lua failing when run on its own on Windows

_G.isWindows only gets set in tests/run.lua so running test-process.lua directly means isWindows would be nil on Windows

Looks like isWindows is also used in test-dns and test-signal. This might be better placed as a property of utils or some sort of environmental variable set by tap.

Good call, didn't think to check where else it was used.

LGTM.


user should be able to set exact percent error correction

I'm trying to create the smallest possible QR codes and I'd like to be able to set error correction to 0%.

I don't believe the spec supports it. See wiki error correction section: https://en.wikipedia.org/wiki/QR_code.
In anycase, this project just wraps and renders qr codes generated by RQRCode, so it won't be able to do things that aren't supported by that project.


[#107] Return chosen candidate without text properties

This fixes #107. Emacs default completion functions return the string of a candidate without any text properties. I also removed selectrum--result because it is not needed anymore (it was there for the old implementation of selectrum-completing-read-multiple).

Hello.
I wrote a command selectrum-swiper in the wiki that uses text properties to attach a line number to a line's content. Do you know the proper way to associate the information, since a line need not be distinct?
The other way I know of is to prepend the line number to the candidate, but then the line number shows up in the history, which is less desirable.
Thank you.

I think you can retrieve the string with properties from the original collection like I did in this PR for selectrum-read-library-name.  So you would get the text property from (car (member chosen-line line-choices)). But this assumes there are no duplicates in the list not sure how to deal with dups.

You could retrieve the string with properties from the original collection like I did in this PR for selectrum-read-library-name. So you would get the text property from (car (member chosen-line line-choices)). But this assumes there are no duplicates in the list not sure how you would deal with dups.

Since it works with completing-read, I decided to just edit the history variable after selection with setcar. I will improve it if I think of a better way later. Thank you for your help.

That sounds like a good approach!

Want to add a changelog entry?

Done

Thanks!


update typing_extensions

Fixes DX-215
Why

The old version pin was incompatible with newer libraries
#125

What changed

Updated pyprojecet.toml to pin typing_extensions to be any 4.x.x release
Ran poetry lock

Test plan

CI passes
Make a project that imports the replit-py release and typing-extensions and see it doesn't fail

Rollout
Describe any procedures or requirements needed to roll this out safely (or check the box below)

[ ] This is fully backward and forward compatible

This is not fully backward compatible. It is possible that other Python packages have version bounds that are incompatible with this. However, they should be able to use poetry to choose an older version of this package.

fixes DX-215

lgtm


Enforce flake8, codespell, pydocstyle in pylossless.dash module

Next up on our journey towards PEP8 / Numpydoc compliance.
These ones might be a doozy.

I'll likely get to this soon, so don't start it yourself :wink:

Have fun!!!! 😉

What's the codespell thing you use?

thanks!

@Andesha let me know if you want me to merge #62 now or after your done.
There is a decent chance that there will be some conflicts that need to be resolved if you've already started the linting work.
I am fine with handling conflicts in #62 if needed.

Ok i'll wait to merge it until we have your PR merged.

"too many instance variables"

interesting... never heard of this one.

@Andesha what linter are you using?

Odd... now that you mention it I was trying to use flake8... :thinking:

good thing you noticed that - I had conflicting linting tools going and it was causing huge issues...
its been fixed now and is also showing way less problems so I should be done shortly(-ish)

can prolly close this now due to #76


Using secure HKP

In the Ubuntu agent's documentation the following step is listed:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 32A37959C2FA5C3C99EFBC32A79206696452D198
It should probably use HKPS instead.

Thanks @adrianke! 🙏🏻 I'll get that updated 👍🏻


change template-pathname->output-name to reliably match pathnames on ccl + linux

fro me, running make-project using ccl64 1.11.5 on linux, the template files do not get renamed to match the project name
the problem seems to be that(pathname-match-p "/some/expanded/template.name" "template.name") is not true in this system
I always get confused about pathnames, so I have added a small function that drops this down to a string compare between file name and file type, which is probably a grotty way to do it, but fixes my problem

This was resolved by 17b2853f310699349dd3503db680ab9dafbb94ab using pathnames properly by comparing the name and type parts of the pathname only.
Same with the issue #20.

thanks!


乱码

async function onMessage (msg) {
console.log(msg.toString())
let msgText = msg.text()
if (msgText.indexOf("vip")  > -1) {
respText = "想成为VIP？"
await msg.say(respText)
}
}
微信端收到乱码：
���ΪVIP��
怎么解决？

@lijiarui 帮忙看看呗

需要什么信息？我发你。

Please follow the ISSUE Template ：
0. Report Issue Guide

Please search in the issue first, and make sure your problem had not been reported before.
If your issue is related to wechaty-puppet-padchat, please report the issue at https://github.com/lijiarui/wechaty-puppet-padchat/issues/new
If your issue is related to wechaty-puppet-puppeteer, please report the issue at https://github.com/Chatie/wechaty-puppet-puppeteer/issues/new
If your issue is DIRECT related to Wechaty, then please follow the below template and make sure you fill it as required in detail.

1. Expected behavior
Question: What behavior do you expect?
Answer:
2. Actual behavior
Question: What actual behavior did you experience?
Answer:
3. Steps to reproduce your problem (and fixes, if any)
This part is very important: if you can not provide any reproduce steps, then the problem will be very hard to be recognized.
Question: What're the reproducible steps for us to see your problem?
Answer:
4. Full Output Logs

Show Logs

$ WECHATY_LOG=silly node yourbot.js

Question: Paste your FULL(DO NOT ONLY PROVIDE FRAGMENTS) log messages
Answer:

@lijiarui 美女

Please paste the full log info, thanks ：）

Could you add console.log(respText) as the following showed and have a try?
async function onMessage (msg) {
  console.log(msg.toString())
  let msgText = msg.text()
  if (msgText.indexOf("vip")  > -1) {
        respText ='想成为VIP？'
+      console.log(respText)
        await msg.say(respText)
    }
}

改成上面代码，结果运行出错了
Contact<义鉑> login
Message#Text(🗣Contact<公安信息化>👤Contact<义鉑>)
(node:16956) UnhandledPromiseRejectionWarning: ReferenceError: respText is not defined
at Wechaty.onMessage (C:\Users\Administrator\wechaty\examples\starter-bot.js:32:20)
at Wechaty.on.args (C:\Users\Administrator\wechaty\node_modules\wechaty\dist\src\wechaty.js:383:26)
at Wechaty.emit (events.js:182:13)
at Wechaty.EventEmitter.emit (domain.js:441:20)
at Wechaty.emit (C:\Users\Administrator\wechaty\node_modules\wechaty\dist\src\wechaty.js:179:22)
at Wechaty. (C:\Users\Administrator\wechaty\node_modules\wechaty\dist\src\wechaty.js:477:30)
at Generator.next ()
at fulfilled (C:\Users\Administrator\wechaty\node_modules\wechaty\dist\src\wechaty.js:4:58)
at process.internalTickCallback (internal/process/next_tick.js:77:7)
(node:16956) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:16956) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

就是改成这样也是两行错误编码
async function onMessage (msg) {
console.log(msg.toString())
let msgText = msg.text()
if (msgText.indexOf("vip")  > -1) {
let  respText ='想成为VIP？'
console.log(respText)
await msg.say(respText)
await msg.say('甚至将他的')
}
}
运行结果：
Contact<义鉑> login
Message#Text(🗣Contact<公安信息化>👤Contact<义鉑>)
���ΪVIP��
Message#Text(🗣Contact<义鉑>👤Contact<公安信息化>)<���ΪVIP��>
Message#Text(🗣Contact<义鉑>👤Contact<公安信息化>)<����������>

Could you just try the following code:
const a = '中文'
console.log(a)

If this still has a strange code, I guess this is not related to wechaty, it is related to your code editor.

Or related to windows encoding.

解决了，谢谢美女和大神。果然是编辑器问题，我直接使用记事本的原因。


Parvus doesn't want to close

When I implement Parvus, I'm getting multiple instances of the same image with an error in the console:
See this screencast: https://cloudup.com/cXEouIO2f3S
parvus.js:440 Uncaught Error: Ups, I'm already closed.
    at close (parvus.js:440)
close @ parvus.js:440

I'm including the library like this after I install with yarn:
import Parvus from 'parvus';

export default {
  init() {
  const prvs = new Parvus();
  prvs();
  }
}

Hey @djmtype,
It is currently not possible (and also not useful?) to create multiple instances of Parvus. Instead of this call:
const prvs = new Parvus();
prvs();

initialize the script by running:
const prvs = new Parvus();