webrtc/browser-to-browser error  Rollup failed to resolve import "@libp2p/webrtc"

trying browser-to-browser example, i've got this error message
npm i && npm run build

added 197 packages, and audited 199 packages in 37s

23 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

><EMAIL_ADDRESS>build
> vite build

vite v4.4.10 building for production...
✓ 3 modules transformed.
✓ built in 72ms
[vite]: Rollup failed to resolve import "@libp2p/webrtc" from "/home/smag/dev/ipfs_video_streaming/js-libp2p/examples/libp2p-in-the-browser/webrtc/browser-to-browser/index.js".
This is most likely unintended because it can break your application at runtime.
If you do want to externalize this module explicitly add it to
`build.rollupOptions.external`
error during build:
Error: [vite]: Rollup failed to resolve import "@libp2p/webrtc" from "/home/smag/dev/ipfs_video_streaming/js-libp2p/examples/libp2p-in-the-browser/webrtc/browser-to-browser/index.js".
This is most likely unintended because it can break your application at runtime.
If you do want to externalize this module explicitly add it to
`build.rollupOptions.external`
    at viteWarn (file:///home/smag/dev/ipfs_video_streaming/js-libp2p/examples/libp2p-in-the-browser/webrtc/browser-to-browser/node_modules/vite/dist/node/chunks/dep-3bba9c7e.js:48215:27)
    at onRollupWarning (file:///home/smag/dev/ipfs_video_streaming/js-libp2p/examples/libp2p-in-the-browser/webrtc/browser-to-browser/node_modules/vite/dist/node/chunks/dep-3bba9c7e.js:48247:9)
    at onwarn (file:///home/smag/dev/ipfs_video_streaming/js-libp2p/examples/libp2p-in-the-browser/webrtc/browser-to-browser/node_modules/vite/dist/node/chunks/dep-3bba9c7e.js:47975:13)
    at file:///home/smag/dev/ipfs_video_streaming/js-libp2p/examples/libp2p-in-the-browser/webrtc/browser-to-browser/node_modules/rollup/dist/es/shared/node-entry.js:24276:13
    at Object.logger [as onLog] (file:///home/smag/dev/ipfs_video_streaming/js-libp2p/examples/libp2p-in-the-browser/webrtc/browser-to-browser/node_modules/rollup/dist/es/shared/node-entry.js:25950:9)
    at ModuleLoader.handleInvalidResolvedId (file:///home/smag/dev/ipfs_video_streaming/js-libp2p/examples/libp2p-in-the-browser/webrtc/browser-to-browser/node_modules/rollup/dist/es/shared/node-entry.js:24862:26)
    at file:///home/smag/dev/ipfs_video_streaming/js-libp2p/examples/libp2p-in-the-browser/webrtc/browser-to-browser/node_modules/rollup/dist/es/shared/node-entry.js:24822:26

This looks like it could be a bundler configuration issue, the examples are tested on ci so we should be able to detect if they are broken, could you include the other environment details such as the platform and version in the PR issue template ? Have you made any changes to the package.json?

Linux mint 21


Add Number of Tests to Measure Results

Thanks for the great tool! I've been looking for something like this since PHPLOC was abandoned.
It would great to have a line item in the output of lines measure to show how many tests were found so that the quality of a codebase can be quickly assessed.

That sounds good :+1:  Just my time for open-source is limited.
Would you like to contribute this?

Apologies for the delay in responding. I'd love to implement this, if I only had the time. Maybe someone else will come along and pick it up in the meantime.


Diagram view should show agents with colour

I would like to see the nodes coloured in the diagram view in the same way how scenario labels are shown in the agent view.

Good idea!

And if the agent is in more than one scenario?

@thiagotalma That's a good point.
I think there are many ways how this can be displayed. Here are a few ideas:

Place as many nodes on the canvas per agent as the number of scenarios it belongs to. That way each node can have a solid color.
As a special case of the previous solution, nodes can be placed on top of each other. Outer nodes should have larger size than an inner node. (This design could lead to very big nodes, when an agent is assigned to a lot of scenarios.)
Put two type of nodes on the canvas. One for scenarios and one for agents. An agent node is connected to the corresponding scenario node. Both scenario node and outgoing edge should have a solid color. Agent nodes and edges between these kind of nodes don't get colors.

Hey @elvetemedve , just to confirm something so if I have this diagram and agent view below.

So for scenario A as you proposed, since Twitter Search Agent belongs to 2 different scenarios (Scenariowithmuiltipleagents (yellow), Twitter Agents(blue), then twitter search engine will happen twice but on top of each other and its color will be the same color as the scenario that it belongs to. The outer most node blue. The innermost node is yellow. The outermost node's size is the largest and the first node is the smallest to indicate that this agent belongs to lots of scenarios.
Also for proposal B, there will be a node for website stuff (blue) and email agent (another node) that connects to the scenario node through a blue colored edge line. The edges of the agent does not have color.
For solid color do you want only the edges of the scenario node to be colored or the whole node to be filled? I am trying to visualize this. Am I right?
@cantino do you have any opinion on this? I see the svg js code and the view. It doesn't look that complicated.

Hi @Jngai,
In the first case, nodes are not overlapped.
In the second case there is no scenario node at all.
Finally I think both edges and scenario nodes should get color.
The same in pictures would look like this:

This is cool.  I wonder how hard it'd be to do with graphviz?

proposal II looks best to me

+1 for proposal ||

I like the one with the colored agents! The only problem I see is an Agent which is part of many scenarios, even though that might not be a very common case.

@dsander, I wonder if we should remove the functionality?  If we did, it would also allow us to make scenarios have options that get merged into their agents, giving them a bit of scenario-level customization and distributability.

i use one data source for several different scenarios.  it seems wasteful to go get that information for all the agents that will need it

@cantino Why do scenario options require Agents to be only in one scenario? If you use an Agent multiple times it would have the same configuration anyways, or am I missing something?
I agree with @mogorman, especially for Agents at the beginning and end of a flow it is useful to reuse them in multiple scenarios.

@dsander: what I was picturing was for Scenarios to have a bag of options, like Agents do.  When an Agent runs, if it's in a Scenario, those Scenario options get reverse_merged into the Agent's options.  I'm not sure how this would work if an Agent were in multiple Scenarios, because then which Scenario options would you use?

@cantino Ah, I see, that's a neat idea and yes that would be hard to do for Agents that belong to multiple scenarios. Maybe we could disallow to configure those scenario options when on of it's Agents belong to multiple scenarios and have a similar restriction in the Agent edit form?

That seems reasonable.
On Thu, May 26, 2016 at 12:39 PM Dominik Sander<EMAIL_ADDRESS>wrote:

@cantino https://github.com/cantino Ah, I see, that's a neat idea and
yes that would be hard to do for Agents that belong to multiple scenarios.
Maybe we could disallow to configure those scenario options when on of it's
Agents belong to multiple scenarios and have a similar restriction in the
Agent edit form?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/cantino/huginn/issues/1345#issuecomment-221926222


audit-scanner: AdmissionPolicies annotation changes

Acceptance criteria:

[ ] Document new usage of metadata.annotations:

io.kubewarden.policy.severity: One of critical, high, medium, low, info. Set by admin, defaults to empty.
io.kubewarden.policy.category: freeform string, set by admin, defaults to empty.

[ ] Add GetSeverity(), GetCategory() to policies.v1 in kubewarden-controller: https://github.com/kubewarden/kubewarden-controller/pull/462
[ ] Consume GetSeverity(), GetCategory() in audit-scanner, and fill the PolicyReportResult with them.

These changes should be done against the feat-audit branch.

I think we have to add also:

GetTitle
GetSubJect
GetDescription`

See https://github.com/kubewarden/audit-scanner/pull/47/files#r1221739092

I can implement a GetTitle that returns metadata.annotation io.artifacthub.displayName if present.
I can also implement GetDescription that returns metadata annotation io.kubewarden.policy.description if present.
I still don't see the need for a GetSubject. The UI shows the type of the ObjectReference that the policy evaluated. If we want to show all GVK the policy could evaluate, we could compute this from the rules, and indeed provide a GetSubject of sorts. But this is not shown by policy-reporter, and the Subject in policy-reporter is hardcoded to the GVK of the ObjectReference passed in the result.

I still don't see the need for a GetSubject. The UI shows the type of the ObjectReference that the policy evaluated. If we want to show all GVK the policy could evaluate, we could compute this from the rules, and indeed provide a GetSubject of sorts. But this is not shown by policy-reporter, and the Subject in policy-reporter is hardcoded to the GVK of the ObjectReference passed in the result.

Yes, that's the right approach. Scratch what I've said about the need to have a GetSubject


feat: Validation for JSON models

Description

resolves https://github.com/openfga/language/issues/100

References

Review Checklist

[ ] I have clicked on "allow edits by maintainers".
[ ] I have added documentation for new/changed functionality in this PR or in a PR to openfga.dev [Provide a link to any relevant PRs in the references section above]
[ ] The correct base branch is being used, if not main
[ ] I have added tests to validate that the change in functionality is working as expected

Any chance we can have validateDSL call validateJSON but with the dslString optional?
From a quick skim the main difference between the two is that validateDSL passes the index.
So validateJSON can do that if the DSL string metadata is provided to the function, otherwise it passes undefined. WDYT?

Thats what I thought of first;
Problem I see is that every function under validateJSON expects the lines: string[] to be passed to it to generate a line number and col for exceptions. This is consumed by the error collector, and before every exception a lineIndex is calculated using lines: string[].
It would mean making all the functions that currently expect lines and/or lineIndex to make the parameter string[] | undefined and/or number | undefined, then handle the undefined behavior.
e.g Of a typical exception generation
function populateRelations(
  lines: string[],
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
  collector: any,
  authorizationModel: AuthorizationModel,
  typeRegex: ValidationRegex,
  relationRegex: ValidationRegex,
) {
  // Looking at the types
  authorizationModel.type_definitions?.forEach((typeDef) => {
    const typeName = typeDef.type;

    if (typeName === Keyword.SELF || typeName === ReservedKeywords.THIS) {
      const lineIndex = getTypeLineNumber(typeName, lines);
      collector.raiseReservedTypeName(typeName, lineIndex);
    }

    if (!typeRegex.regex.test(typeName)) {
      const lineIndex = getTypeLineNumber(typeName, lines);
      collector.raiseInvalidName(typeName, typeRegex.rule, undefined, lineIndex);
    }

This is main reason i split the code - if you'd prefer handling undefined parameters here, I can try that. I have already made line & col values optional for the collector, so that behavior is already working.


Handling a repeating job

What would be the best approach to handle a repeating (in my case delayed) job with Kue. Would it be best to setup a job once and use the queue "job complete" event search for the ID of the job, check the type and re-schedule or is there a better way?
Many thanks.

I may have be creating a new delayed job for the next iteration :)

aha! that is great and very fast response, when do you think it will be available? Right now I use the queue job complete and delete > re-schedule - which seems to be the most reliable method.

You can call .removeOnComplete for automatic removal of the job, on job complete create a new job scheduled for next iteration. Thats Ok @jamesjjk

@behrad is this now a feature?

Can you propose a PR @jamesjjk ?

@behrad Will look into it. What way do you want to go on this listen for a job completion and add the new one and remove the previous? Or maintain an additional type for repeating jobs?


part directives result in failure

If i link two dart files together using part / part of, then neither can be imported anymore resulting in the warning:
[WARNING 2023-06-13 22:59:22.729208] Error: Hot reload failed, maybe because code has syntax error?
That means code generation such as json_serializable cannot be used

Could you please provide a minimal reproducible sample? Thanks

Hey, sorry for the terribly late response. I had missed the email notification of your response and only now that the stale bot notification came did I see your message.
I've added a sample repository that lets you import the class Data from the file something.dart which works normally, but if you try importing the class Data (which uses a part directive because of  json_serializable) from test_repo.dart, then the interpreter complains: Hot reload failed, maybe because code has syntax error?
The relevant files are of course located in the lib folder, and to use the sample repo, you first need to run dart pub install
test_repo_1.zip
Hopefully everything is clear like this, but if not feel free to ask questions. I'll check this issue a few times in the next few days to ensure I don't miss your response this time.


XSStandard shader broken

Not sure if some parts were accidently left out or anything even though I only see mcuestick material using it.

Good spot. Think this is a deprecated material and can be ignored. I'll make a push now with it removed, so the next release won't include it.

Ill close myself since next release wont have the broken shader and stuff ;)


Where is the source about optimization pass ?

Where is the source about optimization pass ?
Thanks a lot!

There are optimizations at various places. https://github.com/bytecodealliance/wasmtime/blob/main/cranelift/codegen/src/context.rs lists a couple (DCE, LICM, GVN, preopt, eliminate unreachable code, replace redundant loads) https://github.com/bytecodealliance/wasmtime/blob/main/cranelift/codegen/src/egraph.rs has egraph based optimizations and then every backend individually has peephole optimizations.

Thanks @bjorn3 for answering this question. I'm going to go ahead and close this issue since there haven't been further questions.
@Zhangyx24, I'd encourage you to come chat with us at https://bytecodealliance.zulipchat.com/#narrow/stream/217117-cranelift if you have any more questions about how we're doing optimization! It's a topic we have too much fun talking about.


Please support more push notifications!

Great app! really appreciate it.
However i dont personally use shouterrr, i use pushover instead.
Kindly support more notifications ranging from email to telegram/discord.
Or allow custom notification actions using scripts etc.
Thanks!

sorry about that, just learnt that shouterrr supports pushover. will look into how to use it. Thanks!


Missing Java Annotations

I was dealing with an app using Retrofit (Java Annotations play an important role in that library). Enjarify seemed to work smoothly, but when I opened output .jar frustrating things came out. I can't find any Java Annotation that should have applied to methods.
Unluckily I‘m not good at python so have no idea. Is enjarify planned to support Java Annotations?

Which app is that? I didn't bother supporting annotations because that would complicate things and it didn't seem important, but if you have an example where it is necessary, I can look into it.

Same issues.
I think Retrofit, view/data inject with Anonotaions is very common in android development.

hi @Storyyeller,
dex2jar seems to be abandon-ware now, for a couple of years already. it has, as i remember you mentioned a long while back somewhere, some issues that enjarify supposedly fix. it hasn't been updated to handle dex 037, and typically chokes on 037 files if you override the version check.
enjarify seems to be our only option going forward, and thus its importance is growing.
you've rewritten enjarify from scratch in various languages (unfortunately none that builds to java bytecode) which makes it difficult to follow up your work, as we don't know which is the canonical implementation that will get updated in the future, if any.
IMHO it is very important for the reversing community, which includes android malware analysts, to have a high quality, up-to-date dedexer tool. a dedexer allows analysts to expand their limited dex toolsets with more mature tools developed for java bytecode.
unfortunately enjarify is not up to the task because translating annotations is necessary to retain the semantics of code. many libraries depend on runtime reflection of annotations. and one can presume that some code (picture obfuscated unpackers) depend on annotations being present in the class/dex files. (and some build tools definitely depend on annotations, but these tools have already been run by their creators on the code being analyzed.)
enjarify cannot replace the dying dex2jar until it can process annotations. i assume you work for google, and your employer has an interest in android malware analysis. maybe you can convince your employer that improving enjarify in this way is worthwhile.
from a technical standpoint i suspect there are two levels of translation needed. besides the actual format translation applied to all annotation instances, i believe some annotations will be instances of dalvikvm-defined annotation classes, and those will have to be replaced with their equivalent javavm-defined annotations. the complete set of required replacements should be found in the source of the dx tool for java 7, and of the jack toolset for java 8. but i assume you already know all of this.
thanks for your time, and thank you for your amazing work in enjarify and krakatau.

Unfortunately, I no longer have the opportunity to work on Enjarify at Google. Any changes I make would have to be done on my own time, like the Rust rewrite I did.

that sucks. so which is going to be the real enjarify from now on? i know the go version won't. but rust or python?

Python, though I might decide to switch to Rust at some point in the future. It's not that important right now as neither is being worked on, but the Python version is easier to use and is one patch ahead of the Rust version (https://github.com/google/enjarify/commit/2a94b403259e9e432fbd9607926db50286de6bc5)


Fix winsorize bug

Fixes a bug where Factor.winsorize counted NaN values as being larger
than all other data points when calculating percentiles.
In practice, this means that most calls to winsorize did not clip
upper-percentile values and were more lenient than expected with
lower-percentile values.

Coverage increased (+0.06%) to 87.111% when pulling da347bbb6080da0c7901741305bcc8fe2dfba759 on fix-winsorize-bug into 52b332919e133750dfd8b726b474179f5a989430 on master.

Coverage increased (+0.06%) to 87.111% when pulling da347bbb6080da0c7901741305bcc8fe2dfba759 on fix-winsorize-bug into 52b332919e133750dfd8b726b474179f5a989430 on master.


fix fix persist issue about jdbc catalog and class loader issue

Proposed changes
Issue Number: close #xxx
Problem summary

Fix a bug that JDBC catalog/database/table should be add to GsonUtil

Fix a class loader issue that sometime it will cause ClassNotFoundException

Fix regression test to use different catalog name.
Checklist(Required)

Does it affect the original behavior:

[ ] Yes
[x] No
[ ] I don't know

Has unit tests been added:

[ ] Yes
[x] No
[ ] No Need

Has document been added or modified:

[ ] Yes
[ ] No
[x] No Need

Does it need to update dependencies:

[ ] Yes
[x] No

Are there any changes that cannot be rolled back:

[ ] Yes (If Yes, please explain WHY)
[x] No

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 35.55 seconds
load time: 433 seconds
storage size:<PHONE_NUMBER>0 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20221203164758_clickbench_pr_57262.html


when can we see the new pure HTC algorithm in your paper？

Next week.

Thanks a lot for your reply!


Best way to start/stop hubot

What's the best way to tell hubot to stop & start. Basically I want tell him to ignore all incoming commands for a set interval. Programmatically stopping/starting is my only hitch, any leads would be greatly appreciated.

There isn't really any sort of 'official' way, except killing the process, whether it's local or on Heroku.

K, thanks for the input. What about loading/unloading scripts - is that possible?

Nevermind, I found loadHubotScripts in robots.coffee. Thanks!


In the context of remoting, Get-ChildItem can unexpectedly access the hidden system junctions

On Windows, hidden system junctions such as "$HOME\My Documents" exist for compatibility with pre-Vista Windows versions - they simply redirect to the current well-known locations.
In a regular session, trying to get the items inside those junctions by design fails with an access-denied error, even in an elevated session.
Unexpectedly, however, in a remoting session the items can be accessed.
This can lead to undesired duplicate processing of items.
Steps to reproduce
Run on Windows, with elevation and remoting set up.
# OK
{ gci -ea stop -force "$HOME\My Documents" } | Should -Throw -ExceptionType System.UnauthorizedAccessException

# Unexpectedly does NOT throw
{ icm -cn . -ConfigurationName PowerShell.7 { $res = gci -ea stop -force "$HOME\My Documents"; $res.FullName | Out-Host } } | Should -Throw -ExceptionType System.UnauthorizedAccessException

Expected behavior
Both test should succeed.
Actual behavior
The 2nd test fails, because accessing the items inside the hidden junction unexpectedly succeeds in the context of remoting.
... # Out-Host output with item paths
InvalidResult:
Line |
   1 | { icm -cn . { $res = gci -ea stop -force "$HOME\My Documents"; $res.FullName | Out-Host } } | Should -Throw -ExceptionType System.UnauthorizedAccessException
     | Expected an exception, with type [System.UnauthorizedAccessException] to be thrown, but no exception was thrown.

Environment data
PowerShell Core 7.1.0-preview.5

Unexpectedly, however, in a remoting session the items can be accessed.

What does gci return in second case?

The usual  (deserialized FileSystemInfo instances), because the code executing remotely seemingly has the required permissions to access these junctions, which locally running code doesn't (even as admin).
I'm guessing that the problem stems from the user impersonation in the remotely executing code being more privileged than necessary.

This is probably due to a network logon having the SeBackupPrivilege which allows you to bypass access checks when accessing items. An interactive logon has the privileges on the access token but they aren't enabled by default whereas a network logon enables all privileges. To see this in action just run whoami.exe /priv.
It sounds like the actual issue relates to https://github.com/PowerShell/PowerShell/issues/9126 where PowerShell follows a symlink/junction by default.

That's a great pointer, @jborean93, thanks.
Note that PowerShell Core by default does not follow symlinks or junctions: #9126 is about the very specific parameter combinations when it unexpectedly deviates from that default, which the code in the OP doesn't employ, however.

Ah yes sorry I see you are doing a gci on the function itself in your example sorry I thought it was about how remoting would follow it not that it doesn't fail like it does when local. Still the SeBackupPrivilege would explain the difference in behaviour here.

/cc @PaulHigin Given @jborean93's explanation (thanks!), would this issue be considered by design?

@daxian-dbw
While the specific command in the OP is definitely an exotic case (explicit targeting of a hidden for-legacy-code-only junction), I am concerned that the underlying problem (for which we now have a technical explanation, thanks to @jborean93) may have other, more problematic ramifications.
In general:

You don't want code to behave differently just because it happens to be running via remoting (leaving the loss of type fidelity on the caller side aside).

You don't want code to run with different - and especially not more - privileges, just because it happens to be running via remoting.

This is not a PowerShell remoting issue, and as @jborean93 points out, a consequence of how the remote non-interactive log in session is created.  You get the same behavior, without running any of the PowerShell remoting stack, by running PowerShell directly in an SSH session:
PS C:\> ssh -l username@domain target1
Microsoft Windows [Version 10.0.18363.959]
(c) 2019 Microsoft Corporation. All rights reserved.

domain\username@target1 c:\Users\username>
domain\username@target1 c:\Users\username>pwsh
PS C:\Users\username>
PS C:\Users\username> dir "$home/My Documents"

    Directory: C:\Users\username\My Documents

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
...

I don't know if this is a privilege issue for non-interactive sessions, but if it is then it needs to be addressed in SSH and WinRM.

Thanks for clarifying, @PaulHigin - I didn't know at what layer this behavior is implemented.
Leaving SSH aside, does this mean that when PowerShell uses WinRM for its remoting it doesn't even have the option to control this behavior?

Yes, AFAIK this restriction is enforced by Windows based on how the log in session is created.  PowerShell, running within the session, has nothing to do with it.

Thanks, @PaulHigin. I'm closing this.
However, I think the behavior is problematic and, given that that it is part of the plumbing, has even wider ramifications than I feared.
I won't personally pursue this outside of PowerShell, but I encourage someone from the team to do so.

Will do.  I'll contact the owners of WinRM and try to find out if this is expected.

This wouldn't be something with WinRM or even SSH but just how Windows deals with a Network logon. You can see it in action by using my PSAccessToken module (note this isn't released but just on GitHub).
 WinRM and SSH are affected because it is creating a process based on the network logon token so they have those privileges enabled by default.
My guess as to why this happens is because network logon like services, like SMB, doesn't have a mechanism to adjust the token privileges from the client's perspective. This would cause havok on things like RPC commands over named pipes (over SMB) and even backup systems that rely on the SeBackupPrivilege/SeRestorePrivilege to read/write files on a network share without having explicit permission.

Right, that is what I meant about this being a WinRM/SSH issue, since they create Network log on sessions.  So this behavior is by design.


Timestamp wrong (GMT + 1), but shown as GMT+2

Hello!
All ring timestamps differ for one hour.
For example the ring.0.Snapshot.moment is always one hour behind.
If I look into my ios Ring app, the time is shown correctly and also ioBroker time is correct.

Adapter version: 4.0.0
JS-Controller version: 7.0.3
Node version: 18.17.0
Operating system: Linux (iobroker docker)

Best regards
Crocri

js-controller 7 is not yet released 🤔

I do not really believe
Unless you perform timejumps
Current stable js-controller 4.x.x
Current latest js-controller 5.x.x
So js-controller 7 will be implemented 2024/2025
😀

I dont think so as js-controller 7 is not even started to develop 😉
Maybe your using 5.x.x

You're correct, my fault.
I meant the javascript adapter, not the js-controller.
js-controller has version 4.0.24
Looking forward to js-controller 7 ;-)
Best regards
Crocri


Do we need remote signers to be able to change the device they're signing on as the MVP?

Yes - both Caroline and David said this is needed.

This means that for multi-user signatures we have to either:

Use force_ask() so we can use the same interview for all signatures. (Branching paths are impossible with this function, so there could be no choice of devices.)
Use redis and send out links for individual interviews while keeping the original interview for the people that can sign on it themselves.

If we don't use either of those, then idempotency is broken and people's actions/answers/inputs interfere with each other.
An option to explore: Do all logic through action_arguments and use each screen to control the branching.


Document the default datadir location per system

I've been asked a few times already.
For a user Alice the default LIana datadir is:

/Users/Alice/Library/Application Support/Liana on MacOS
C:\Users\Alice\AppData\Roaming\Liana on Windows
/home/Alice/.liana on Linux

i was struggling on a Mac today, thanks!

So Library is sometimes a hidden folder in Finder. One can display it with right click + "show Library" or with the shortcut "cmd + shift + ."

it is already documented in TRY.md::CLeanup, but we should maybe put it in a different section.

it is already documented in TRY.md::CLeanup, but we should maybe put it in a different section.

wdyt @nondiremanuel?

it is already documented in TRY.md::CLeanup, but we should maybe put it in a different section.

wdyt @nondiremanuel?

If it's an information used also for other purposes than cleanup, I think we should add the information also elsewhere (usage?).

you need to know the location of the datadir to start a standalone daemon (lianad)


Dynamic ONNX export of convnext models with circular padding fails

🐛 Describe the bug
When trying to export a convnext with circular paddings, export will fail for dynamic shapes. The following MWE
import torch
import torchvision
from torchvision.models.feature_extraction import (
    create_feature_extractor,
)

# circular padding works for exporting a single conv to onnx.
model = torch.nn.Conv2d(3, 6, 3, 2)
model.padding_mode = "circular"
torch.onnx.export(
    model,
    torch.zeros((1, 3, 384, 384)),
    "./model.onnx",
    input_names=["input"],
    dynamic_axes={"input": [0, 2, 3]},
)

# however, for complex models it will fail.
model = torchvision.models.convnext_small()
for module in model.modules():
    if isinstance(module, torch.nn.Conv2d):
        module.padding_mode = "circular"
model = create_feature_extractor(model, {"features.3": "output"})
torch.onnx.export(
    model,
    torch.zeros((1, 3, 384, 384)),
    "./model.onnx",
    input_names=["input"],
    output_names=["output"],
    dynamic_axes={"input": [0, 2, 3]},
)

errors with
Traceback (most recent call last):
  File "/workspaces/ml-docker-dev/sensei/mwe.py", line 25, in <module>
    torch.onnx.export(
  File "/usr/local/lib/python3.10/site-packages/torch/onnx/utils.py", line 506, in export
    _export(
  File "/usr/local/lib/python3.10/site-packages/torch/onnx/utils.py", line 1548, in _export
    graph, params_dict, torch_out = _model_to_graph(
  File "/usr/local/lib/python3.10/site-packages/torch/onnx/utils.py", line 1117, in _model_to_graph
    graph = _optimize_graph(
  File "/usr/local/lib/python3.10/site-packages/torch/onnx/utils.py", line 665, in _optimize_graph
    graph = _C._jit_pass_onnx(graph, operator_export_type)
  File "/usr/local/lib/python3.10/site-packages/torch/onnx/utils.py", line 1891, in _run_symbolic_function
    return symbolic_fn(graph_context, *inputs, **attrs)
  File "/usr/local/lib/python3.10/site-packages/torch/onnx/symbolic_opset11.py", line 864, in pad
    return opset9._pad_circular(g, input, pad)
  File "/usr/local/lib/python3.10/site-packages/torch/onnx/symbolic_opset9.py", line 1919, in _pad_circular
    left = symbolic_helper._slice_helper(
  File "/usr/local/lib/python3.10/site-packages/torch/onnx/symbolic_helper.py", line 729, in _slice_helper
    return _slice10(g, input, axes, starts, ends, steps, dynamic_slice)
  File "/usr/local/lib/python3.10/site-packages/torch/onnx/symbolic_opset10.py", line 352, in _slice
    if ends[0] > _constants.INT64_MAX:
TypeError: '>' not supported between instances of 'NoneType' and 'int'
(Occurred when translating pad).

Some observations from my side:

Exporting the model with zero padding in static as well as dynamic mode works.
Exporting the model with circular padding in static mode works as well. However, if you try to resize the onnx model dynamically this will fail as soon as you are bigger than the input size with some margin (I presume the margin to get to the next valid conv).
Exporting just a single torch.nn.Conv2d model works with both static and dynamic mode as well as circular and zeros padding.

Note that I did not test this for other covnext versions, but expect those to also fail the export. I presume the above error is some edge-case for the workarounds that Pytorch does to achieve circular padding in onnx currently, which was so far not officially supported/did not have an official op, see this related issue. https://github.com/pytorch/pytorch/issues/95229
Versions
Versions of relevant libraries:
[pip3] mypy==1.2.0
[pip3] mypy-extensions==1.0.0
[pip3] numpy==1.23.4
[pip3] pytorch-lightning==1.9.5
[pip3] torch==2.0.0
[pip3] torchmetrics==0.10.3
[pip3] torchvision==0.15.1
[pip3] triton==2.0.0
[conda] Could not collect

Since onnx export is involved:
onnx==1.13.1

Thanks for the report @ORippler
I suspect the issue might have to do with your env, because I cannot reproduce the error on my side. I'm getting the following output:
/home/nicolashug/.miniconda3/envs/pt/lib/python3.9/site-packages/torch/onnx/utils.py:2049: UserWarning: No names were found for specified dynamic axes of provided input.Automatically generated names will be applied to each dynamic axes of input input
  warnings.warn(
========== Diagnostic Run torch.onnx.export version 2.1.0.dev20230411 ==========
verbose: False, log level: Level.ERROR
======================= 0 NONE 0 NOTE 0 WARNING 0 ERROR ========================

========== Diagnostic Run torch.onnx.export version 2.1.0.dev20230411 ==========
verbose: False, log level: Level.ERROR
======================= 0 NONE 0 NOTE 0 WARNING 0 ERROR ========================

(pt) ➜  vision git:(main) ✗ ipython -c "from torch.utils import collect_env; collect_env.main()"
Collecting environment information...
PyTorch version: 2.1.0.dev20230411
Is debug build: False
CUDA used to build PyTorch: None
ROCM used to build PyTorch: N/A

OS: Fedora release 34 (Thirty Four) (x86_64)
GCC version: (GCC) 11.3.1 20220421 (Red Hat 11.3.1-2)
Clang version: 12.0.1 (Fedora 12.0.1-1.fc34)
CMake version: version 3.23.1
Libc version: glibc-2.33

Python version: 3.9.12 | packaged by conda-forge | (main, Mar 24 2022, 23:25:59)  [GCC 10.3.0] (64-bit runtime)
Python platform: Linux-5.17.12-100.fc34.x86_64-x86_64-with-glibc2.33
Is CUDA available: False
CUDA runtime version: No CUDA
CUDA_MODULE_LOADING set to: N/A
GPU models and configuration: No CUDA
Nvidia driver version: No CUDA
cuDNN version: No CUDA
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True

CPU:
Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   39 bits physical, 48 bits virtual
CPU(s):                          8
On-line CPU(s) list:             0-7
Thread(s) per core:              2
Core(s) per socket:              4
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           140
Model name:                      11th Gen Intel(R) Core(TM) i5-1145G7 @ 2.60GHz
Stepping:                        1
CPU MHz:                         2600.000
CPU max MHz:                     4400.0000
CPU min MHz:                     400.0000
BogoMIPS:                        5222.40
Virtualization:                  VT-x
L1d cache:                       192 KiB
L1i cache:                       128 KiB
L2 cache:                        5 MiB
L3 cache:                        8 MiB
NUMA node0 CPU(s):               0-7
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Enhanced IBRS, IBPB conditional, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l2 invpcid_single cdp_l2 ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves split_lock_detect dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp hwp_pkg_req avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg tme avx512_vpopcntdq rdpid movdiri movdir64b fsrm avx512_vp2intersect md_clear flush_l1d arch_capabilities

Versions of relevant libraries:
[pip3] mypy==0.991
[pip3] mypy-extensions==0.4.3
[pip3] numpy==1.24.2
[pip3] pytorch-sphinx-theme==0.0.24
[pip3] torch==2.1.0.dev20230411
[pip3] torchvision==0.16.0a0+0d75d9e
[conda] blas                      1.0                         mkl
[conda] cpuonly                   2.0                           0    pytorch-nightly
[conda] mkl                       2021.4.0           h06a4308_640
[conda] mkl-service               2.4.0            py39h7f8727e_0
[conda] mkl_fft                   1.3.1            py39hd3c417c_0
[conda] mkl_random                1.2.2            py39h51133e4_0
[conda] numpy                     1.24.2                   pypi_0    pypi
[conda] pytorch                   2.1.0.dev20230411     py3.9_cpu_0    pytorch-nightly
[conda] pytorch-mutex             1.0                         cpu    pytorch-nightly
[conda] pytorch-sphinx-theme      0.0.24                    dev_0    <develop>
[conda] torchvision               0.14.0a0+1d7d92c          pypi_0    pypi

Well with the nightly it passes for me as well, but it fails with the stable release.

Ah got it, looks like it has been fixed since the last release then. We just released a bugfix release yesteraday (0.15.2), I haven't checked but if we're lucky, that release may contain the fix!


AlamofireXMLRPC requests in a background fetch

I'm trying to use AlamofireXMLRPC inside a background fetch.
My requests work fine if they're triggered while the app is active or it's state is changed to active, but when I trigger them inside a background fetch it seems like the execution stops as soon as the first request is being made.
If i then activate my app, the requests are processed as expected in the active state. If I activate the app too late i get a timeout error.
So is there any known issue with AlamofireXMLRPC regarding using it for background fetch?

Not known to me. Underhood it's Alamofire that performs the request by using URLSession. You could try to perform a request directly on the same endpoint with Alamofire. You should probably take al look at the session manager: https://github.com/Alamofire/Alamofire#session-manager


mention RawHandle type for wayland

Description
Please include a summary of the change and whether it fixes an issue/bug.

Thank you 🙏


Create a misbehaviour verification tool / site

Currently, there is no simple way of verifying that an accountable tower has cheated (i.e. that has not responded to a breach).
However, all the information is in place to do so. It'll be nice to either have a standalone tool / simple website to run this verification.
The user would need to input the corresponding receipts (registration and appointment), the tower identifier, and proof that a dispute transaction was published but no penalty was ever submitted to the chain.

Adding this as a Summer Of Bitcoin (SOB) project. If you're considering tackling this but you are not part of SOB, please leave it until SOB is over. After that, feel free to jump in.

I think we need to create a web application where users will register, and submit relevant receipts.

Nah, this is a tool that checks whether the tower has made a bad action/no-action or not. Users normally register using their lightning node clients.

Then creating a smart contract on bitcoin, and integrating the application to eye of satoshi.

No bitcoin script involved in this.

When a user registers with a tower the tower promises to cover that user for X amount of time and hands him/her a receipt. A user can then send appointments to the tower for that X amount of time (or until they have no more slots left) and the tower should decrypt & broadcast these appointments/penalty-transactions when a user's channel is breached.
If the tower doesn't do so, then the tower has misbehaved.
Given a registration receipt and an appointment receipt a user can prove that the tower had been sent appointment A and was still covered with registration R but DIDN'T send out penalty-transaction P, and thus the channel was breached.
There is currently no easy way to generate such a proof without manual work. In this project, the student should create a tool to do that work.

I think we need to create a web application where users will register, and submit relevant receipts.

Nah, this is a tool that checks whether the tower has made a bad action/no-action or not. Users normally register using their lightning node clients.

Then creating a smart contract on bitcoin, and integrating the application to eye of satoshi.

No bitcoin script involved in this.
When a user registers with a tower the tower promises to cover that user for X amount of time and hands him/her a receipt. A user can then send appointments to the tower for that X amount of time (or until they have no more slots left) and the tower should decrypt & broadcast these appointments/penalty-transactions when a user's channel is breached. If the tower doesn't do so, then the tower has misbehaved.
Given a registration receipt and an appointment receipt a user can prove that the tower had been sent appointment A and was still covered with registration R but DIDN'T send out penalty-transaction P, and thus the channel was breached.
There is currently no easy way to generate such a proof without manual work. In this project, the student should create a tool to do that work.

Couldn't have explained it more concisely.
Regarding the tech stack, the tool should be built in rust, with respect to the site, you can design it using the tech stack you feel more comfortable with.

I think we need to create a web application where users will register, and submit relevant receipts.

Nah, this is a tool that checks whether the tower has made a bad action/no-action or not. Users normally register using their lightning node clients.

Then creating a smart contract on bitcoin, and integrating the application to eye of satoshi.

No bitcoin script involved in this.
When a user registers with a tower the tower promises to cover that user for X amount of time and hands him/her a receipt. A user can then send appointments to the tower for that X amount of time (or until they have no more slots left) and the tower should decrypt & broadcast these appointments/penalty-transactions when a user's channel is breached. If the tower doesn't do so, then the tower has misbehaved.
Given a registration receipt and an appointment receipt a user can prove that the tower had been sent appointment A and was still covered with registration R but DIDN'T send out penalty-transaction P, and thus the channel was breached.
There is currently no easy way to generate such a proof without manual work. In this project, the student should create a tool to do that work.

Oo got it, I was thinking something else, thanks a lot for the clarity 👍🏻 .

Hello @sr-gi,
I am very interested in contributing to this project under the Summer of Bitcoin program. I have read the issue description and I believe I can develop a standalone tool or a simple website to run the verification as described. I would like to inform you that I will be drafting a proposal for this project idea and would appreciate any guidance or additional information you can provide to help me better understand the requirements and scope of the project.

Hi @sr-gi,
I hope this message finds you well. I wanted to follow up on my previous comment regarding contributing to the project for verifying misbehaviour. As I mentioned before, I am very interested in contributing to this issue and will be submitting the proposal soon. In the meantime, I would like to work on some minor isssues or bugs related to this project idea. So, it would be really helpful if you point some issues related to it which I can start working now as I already finished the #210 task.

I think we need to create a web application where users will register, and submit relevant receipts.

Nah, this is a tool that checks whether the tower has made a bad action/no-action or not. Users normally register using their lightning node clients.

Then creating a smart contract on bitcoin, and integrating the application to eye of satoshi.

No bitcoin script involved in this.
When a user registers with a tower the tower promises to cover that user for X amount of time and hands him/her a receipt. A user can then send appointments to the tower for that X amount of time (or until they have no more slots left) and the tower should decrypt & broadcast these appointments/penalty-transactions when a user's channel is breached. If the tower doesn't do so, then the tower has misbehaved.
Given a registration receipt and an appointment receipt a user can prove that the tower had been sent appointment A and was still covered with registration R but DIDN'T send out penalty-transaction P, and thus the channel was breached.
There is currently no easy way to generate such a proof without manual work. In this project, the student should create a tool to do that work.

Couldn't have explained it more concisely.
Regarding the tech stack, the tool should be built in rust, with respect to the site, you can design it using the tech stack you feel more comfortable with.

Do we have to build a tool or a site or both? I'm asking because the title is saying any one of them but your comment is pointing to make a tool in rust and a site with respect to it.

Hi @sr-gi, I hope this message finds you well. I wanted to follow up on my previous comment regarding contributing to the project for verifying misbehaviour. As I mentioned before, I am very interested in contributing to this issue and will be submitting the proposal soon. In the meantime, I would like to work on some minor isssues or bugs related to this project idea. So, it would be really helpful if you point some issues related to it which I can start working now as I already finished the #210 task.

I don't think there is any open issue especially related to this. Feel free to try to tackle any good-first-issue or just go over the codebase to get more familiar with it.

I think we need to create a web application where users will register, and submit relevant receipts.

Nah, this is a tool that checks whether the tower has made a bad action/no-action or not. Users normally register using their lightning node clients.

Then creating a smart contract on bitcoin, and integrating the application to eye of satoshi.

No bitcoin script involved in this.
When a user registers with a tower the tower promises to cover that user for X amount of time and hands him/her a receipt. A user can then send appointments to the tower for that X amount of time (or until they have no more slots left) and the tower should decrypt & broadcast these appointments/penalty-transactions when a user's channel is breached. If the tower doesn't do so, then the tower has misbehaved.
Given a registration receipt and an appointment receipt a user can prove that the tower had been sent appointment A and was still covered with registration R but DIDN'T send out penalty-transaction P, and thus the channel was breached.
There is currently no easy way to generate such a proof without manual work. In this project, the student should create a tool to do that work.

Couldn't have explained it more concisely.
Regarding the tech stack, the tool should be built in rust, with respect to the site, you can design it using the tech stack you feel more comfortable with.

Do we have to build a tool or a site or both? I'm asking because the title is saying any one of them but your comment is pointing to make a tool in rust and a site with respect to it.

This issue is older than the SoB project. For it, a tool was enough, but for SoB, both are required (otherwise it won't be much of a project for an entire summer).

I think we need to create a web application where users will register, and submit relevant receipts.

Nah, this is a tool that checks whether the tower has made a bad action/no-action or not. Users normally register using their lightning node clients.

Then creating a smart contract on bitcoin, and integrating the application to eye of satoshi.

No bitcoin script involved in this.
When a user registers with a tower the tower promises to cover that user for X amount of time and hands him/her a receipt. A user can then send appointments to the tower for that X amount of time (or until they have no more slots left) and the tower should decrypt & broadcast these appointments/penalty-transactions when a user's channel is breached. If the tower doesn't do so, then the tower has misbehaved.
Given a registration receipt and an appointment receipt a user can prove that the tower had been sent appointment A and was still covered with registration R but DIDN'T send out penalty-transaction P, and thus the channel was breached.
There is currently no easy way to generate such a proof without manual work. In this project, the student should create a tool to do that work.

Couldn't have explained it more concisely.
Regarding the tech stack, the tool should be built in rust, with respect to the site, you can design it using the tech stack you feel more comfortable with.

Do we have to build a tool or a site or both? I'm asking because the title is saying any one of them but your comment is pointing to make a tool in rust and a site with respect to it.

This issue is older than the SoB project. For it, a tool was enough, but for SoB, both are required (otherwise it won't be much of a project for an entire summer).

Okay. Then, I'll prepare my proposal accordingly. Thanks for the clarification.

Hi @sr-gi, thank you for selecting me to work on this project idea for this summer! I already did all the setup and was also able to load queries and fetch the data. What should I start doing now? Designing the frontend first and keeping the tool off for now or start with making the tool first?

It's up to you. I'd do backend then frontend, nit that's how I normally work, you may do things differently.

Hi @sr-gi, thank you for selecting me to work on this project idea for this summer! I already did all the setup and was also able to load queries and fetch the data. What should I start doing now? Designing the frontend first and keeping the tool off for now or start with making the tool first?

Based on your suggestion, I'll start working on the backend first and then move on to the frontend. This approach will help me build a solid foundation for the project. I'll keep you updated on my progress and reach out if I have any questions or need clarification.


Change PR branch message

Learn Build status updates of commit 9cedc0c:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

content/pr.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

#sign-off


RedHat 8 /lib64/libssh.so.4: symbol EVP_KDF_ctrl version OPENSSL_1_1_1b not defined in file libcrypto.so.1.1

For our application, we build OpenSSL from source.  On Linux, we do the following:
./config --prefix= shared
make
make test
make install
We set up our app to load our SSL version via LD_LIBRARY_PATH.  However, some of our application code has a dependency on /lib64/libssh.so and on RedHat 8, we began receiving the error:
/lib64/libssh.so.4: symbol EVP_KDF_ctrl version OPENSSL_1_1_1b not defined in file libcrypto.so.1.1
Now, this error is NOT seen on an equivalent CentOS system and we found that the system installed openssl is different between the two.
If I dump the symbols from the RH8 installed OpenSSL crypto library and grep for EVP_KDF:

$ nm -gD /lib64/libcrypto.so.1.1 | grep EVP_KDF
00000000001727e0 T EVP_KDF_ctrl
00000000001728d0 T EVP_KDF_ctrl_str
0000000000172620 T EVP_KDF_CTX_free
0000000000172660 T EVP_KDF_CTX_new_id
0000000000172990 T EVP_KDF_derive
0000000000172780 T EVP_KDF_reset
0000000000172960 T EVP_KDF_size
00000000001727b0 T EVP_KDF_vctrl

However, with our own build, EVP_KDF is not found:

$ nm -gD libcrypto.so.1.1 | grep EVP_KDF

So, the question is:  what configuration settings are necessary to create a libcrypto.so version that exports those functions?  It's not clear from the Configuration script how to enable these features?

Red Hat adds EVP_KDF support downstream. You cannot get this function from the regular upstream openssl builds. It is strange that you would not see the same thing on the CentOS 8 as well though.
The only thing I can recommend is not trying to replace the Red Hat openssl build with your own if you link also to other system libraries such as libssh.

@mazer1310 , I appreciate this is late but in case anyone else finds this issue and is still in search of a solution, here's one idea. If you're building your own openssl libs that you want to be in the runtime linker path for CentOS/RHEL built ssl enabled tooling then one option is to apply the relevant patches. See https://src.fedoraproject.org/rpms/openssl/tree/f33 (etc) for an example.

@schnoberts1:
Thanks for your follow up.  It was unfortunate that RedHat decided to customize the OpenSSL builds, but did not change the resulting library names or version numbers.  As a result, the RedHat and Stock OpenSSL libraries are both named "libcrypto.so.1.1" and "libssl.so.1.1", and yet are incompatible with one another.  Since RedHat took it upon themselves to customize OpenSSL, a better approach would have been to customize the library names or version numbers.  For instance, they could have named the libraries "libcrypto-rh.so" and "libssl-rh.so", or modified the version numbers to be libcrypto.so.1.2 and libssl.so.1.2
I did try the approach of applying the relevant patches from src.fedoraproject.org and was able to get it working with openssl-1.1.1-evp-kdf.patch, openssl-1.1.1-krb5-kdf.patch and openssl-1.1.1-ssh-kdf.patch.  However, we decided not to go this route because the other 32 patches would not be applied to our library which could still be loaded by RedHat specific binaries resulting in potentially unexpected behavior for modules outside of our software.  Additionally, we needed this to work on various Linux distributions, not just RedHat 8, and modifying the libraries in this way threatened to run into similar problems on other systems.  Finally, this would have made us dependent on the RedHat patch releases which can lag the official OpenSSL releases by a fair amount of time.
The rpath approach is excellent and would have been a good approach.  However, in the end, we took it upon ourselves to modify our own library names and this ended up sorting out the problems.  We created libcrypto_1_1.so and libssl_1_1.so and relinked the dependent libraries (including 3rdparties) to the new names.  The irony is that it is the RedHat libraries which are customized but use the official names and our libraries which are stock and use the customized names!
If anyone is interested in this approach, edit the OpenSSL Makefile in vi or vim and perform the following substitutions:
:%s/libcrypto$(SHLIB_EXT/libcrypto_1_1$(SHLIB_EXT/g
:%s/libssl$(SHLIB_EXT/libssl_1_1$(SHLIB_EXT/g
:%s/libcrypto.a/libcrypto_1_1.a/g
:%s/libssl.a/libssl_1_1.a/g
:%s/-lcrypto/-lcrypto_1_1/g
:%s/-lssl/-lssl_1_1/g
There is a test failure with test 90 shlibload which was I unable to sort out, but regardless of the failure the customized libraries work successfully
Any libraries that need to use these libraries can do so by updating their respective Makefiles to -lcrypto_1_1 and -lssl_1_1
Cheers,
Steve

@mazer1310
Thank you, we took this approach and it also resolved our conflict.
We found it was simpler to just rename SHLIB_VERSION_NUMBER in opensslv.h by adding a suffix
# define SHLIB_VERSION_NUMBER "1.1suffixhere"
The stock openssl Configure script pulls from this, and automatically configures the openssl Makefile to build ssl/crypto libraries with this naming. Then the rest of our build uses that naming for linking.

We have also encountered this problem and resolved it by statically linking OpenSSL.


Script-Icon in the Scene-Dock not updateing

Godot version
3.x.x + 4 alpha 6
System information
not OS-specific
Issue description
When i add/remove a script in the Inspector, the Scene-Dock is not updating the add-/remove-script icon.

Steps to reproduce

Click on a Node
Add/Remove the attached script in the inspector
-> Icon in the Scene-Dock is not updated

What i've found
Looks like the function SceneTreeDock::_update_script_button() in scene_tree_dock.cpp needs to be called again. But i dont know from where.

Duplicate of #55237.

Duplicate of https://github.com/godotengine/godot/issues/55237.


Fix RailsAdmin PJAX

RailsAdmin uses rack_pjax. This listener will work with that.

+1

Thank you!


fix typo

@HerbCaudill tiny PR :smile:
Feel free to update the string in your PRs and close this one.

Good catch, thanks!


Several characters got the same uuid

const getUuid = require('uuid-by-string');

const uuidHash = getUuid("好");
console.log(uuidHash)
const uuidHash2 = getUuid("白");
console.log(uuidHash2)

result:
c2b7df62-01fd-5336-a399-091f0a29550d
c2b7df62-01fd-5336-a399-091f0a29550d

@hscspring thank you a lot for the opened issue! Fixes will be made in version 4.0


Readme

Description
Updated README to include an overview, list of features, installation instructions, and details on usage with examples.
Type of Change

[ ] Bug Fix
[ ] New Feature
[ ] Breaking Change
[ ] Refactor
[x] Documentation
[ ] Other (please describe)

Checklist

[x] I have read the contributing guidelines
[x] Existing issues have been referenced (where applicable)
[x] I have verified this change is not present in other open pull requests
[x] Functionality is documented
[x] All code style checks pass
[x] New code contribution is covered by automated tests
[x] All new and existing tests pass

Codecov Report
Patch and project coverage have no change.

Comparison is base (4b7820e) 100.00% compared to head (9fa3786) 100.00%.

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #14   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            2         2
  Lines          445       445
  Branches        15        15
=========================================
  Hits           445       445

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Write the user stories for the how and why the users will be using this app.

User stories have been completed and written in the proposal document to be viewed in the future


[Issue] CVE-2023-23397 - script doesnt recognize installed AzureAD Module

Describe the issue
Windows 11 22621, AzureAD module version <IP_ADDRESS>, latest version of CVE-2023-23397.ps1 script from here:
https://microsoft.github.io/CSS-Exchange/Security/CVE-2023-23397/
We wanted to do audit check on our Exchange Online env and to do that I tried running script using "-CreateAzureApplication" parameter. I get "CVE-2023-23397 script version <IP_ADDRESS>9" and after that following error:
Unable to connect to Azure AD... Make sure you have AzureAD module installed Inner Exception                                                                                AzureAD module was not found on this computer. You can install it by running Install-Module AzureAD
Expected behavior
Azure app created
Script Output
Unable to connect to Azure AD... Make sure you have AzureAD module installed Inner Exception                                                                                AzureAD module was not found on this computer. You can install it by running Install-Module AzureAD
Additional context
Tried runniing Connect-AzureAD beforehand and I auth'd successfully and managed to test functionality with Get-AzureADUsers

@mariobesen what's the output if you run Get-InstalledModule -Name "AzureAD" on the computer where the script should be executed?

@mariobesen what's the output if you run Get-InstalledModule -Name "AzureAD" on the computer where the script should be executed?

So, when I do Get-InstalledModule I don't see AzureAD, but when I query Get-Module I can see AzureAD in there.
What is confusing me here is that AzureAD cmdlets are working when I invoke them in terminal, so I'm not sure why is script checking for installed modules instead of available modules?
Furthermore, I just made investment into MS Graph instead of AzureAD that's being deprecated IIRC, so I'm not sure what should be my next step here.
Thank you!

@mariobesen as per #1567 we also plan to switch using Graph API to do the Azure-related calls. However, now we stick with the AzureAD module.
Get-InstalledModule returns the modules which were installed via PowerShellGet. In this case it sounds like the AzureAD module wasn't installed via 'PowerShellGet'. Can you confirm this?

@mariobesen as per #1567 we also plan to switch using Graph API to do the Azure-related calls. However, now we stick with the AzureAD module.
Get-InstalledModule returns the modules which were installed via PowerShellGet. In this case it sounds like the AzureAD module wasn't installed via 'PowerShellGet'. Can you confirm this?

Thank you! Yes, I had to manually install it since we're behind proxy and powershellget is not reachable

We'll improve the detection logic for the AzureAD module. I've linked the PR to this issue. This should remove the dependency to Get-InstalledModule as we try to import the module and handle the exception which occurs if the module isn't installed.

I'm using the "AzureADPreview" module.
Had to change line 1223 from Import-Module "AzureAD" to Import-Module "AzureADPreview" and now I don't get the Error "The AzureAD module was not found on this computer."
maybe add If not "AzureAD" else "AzureADPreview" before the script fails?

My Script still does not recognize AzureAD Module. Add to that, attempts to install AzureAD via PowerShellGet error out. What am I missing?

@rawsGit the script tries to import the module by simply running Import-Module "AzureAD" -ErrorAction Stop. If it doesn't work, it will fail. What happens if you try to run Import-Module "AzureAD" -ErrorAction Stop in a fresh PowerShell?

My Script still does not recognize AzureAD Module. Add to that, attempts to install AzureAD via PowerShellGet error out. What am I missing?

You are using PowerShell Core, please use normal Windows PowerShell for the script.

My Script still does not recognize AzureAD Module. Add to that, attempts to install AzureAD via PowerShellGet error out. What am I missing?

You are using PowerShell Core, please use normal Windows PowerShell for the script.

Same Result:

My Script still does not recognize AzureAD Module. Add to that, attempts to install AzureAD via PowerShellGet error out. What am I missing?

You are using PowerShell Core, please use normal Windows PowerShell for the script.

Same Result:

Because you are using Find-Module not Get-Module so it isn't installed.

Run Install-Module AzureAD as the error message provides.

@dpaulson45

@lusassl-msft & @dpaulson45, thanks for all the help. The script executed successfully on a different box. Perhaps the first box I attempted to run the script on was/is corrupted.


Install Coccinelle built from sources

Signed-off-by: Gianpaolo Macario<EMAIL_ADDRESS>

LGTM, merging


The CSS Modules of @swc/css, can they support ICSS?

Describe the feature
The CSS Modules of @swc/css, can they support ICSS?
Babel plugin or link to the feature description
No response
Additional context
https://github.com/css-modules/icss

Yes, but I'm not going to work on it

I think that exporting variables using :export is a fairly common requirement. Do you think this is not common enough and thus expect the community to implement it?

I already have enormous amount of tasks to do. That's all.

🌚


Update zio-logging to 2.1.2

Updates dev.zio:zio-logging from 2.1.0 to 2.1.2.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (2.1.0).
You might want to review and update them manually.
project/Version.scala

Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "dev.zio", artifactId = "zio-logging" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "@monthly" },
  dependency = { groupId = "dev.zio", artifactId = "zio-logging" }
}]

labels: library-update, early-semver-patch, semver-spec-patch, old-version-remains, commit-count:1

Superseded by #389.


Same file and folder name not working with page links

Have you read the Contributing Guidelines on issues?

[X] I have read the Contributing Guidelines on issues.

Prerequisites

[X] I'm using the latest version of Docusaurus.
[X] I have tried the npm run clear or yarn clear command.
[X] I have tried rm -rf node_modules yarn.lock package-lock.json and re-installing packages.
[X] I have tried creating a repro with https://new.docusaurus.io.
[X] I have read the console error message carefully (if applicable).

Description
When the file name and folder name is same in docusaurus, then self link like [About me](about-me/about-me) in docs is not working, since link is going to docs/about-me/about-me but the url that is built is docs/about-me.
If I change the link to [About me](about-me) then link is working but then the link is not recognized in vscode+foam or obsidian.
And If I keep the folder name and file name different then folder doesn't become a page, and also breadcrubs doesn't work.
I have tried all the combinations of links of About me, ex -
1. [About me](about-me/about-me)
2. [About me](./about-me)
3. [About me](./about-me/)
4. [About me](./about-me/about-me)
5. [About me](./about-me/about-me/)
6. etc

How to get links working in both docusaurus build-deploy and in obsidian too, with same folder and file name.
A solution should be that instead of only generating about-me it should generate about-me/about-me as web link
Ex - In this page https://deepaksood619.github.io/docs/databases/sql-databases/aaa-outline if I click memsql it goes to https://deepaksood619.github.io/docs/databases/sql-databases/memsql/memsql but it gives 404, but if I remove last memsql, it works i.e. https://deepaksood619.github.io/docs/databases/sql-databases/memsql/ , since both folder name and file name is memsql and memsql.md respectively.
I am able to navigate via sidebar correctly and breadcrumb is working, but links doesn't work.
Reproducible demo
No response
Steps to reproduce
Create folder name and file name same, and add link to that page using [About me](about-me/about-me) the link after build should generate about-me/about-me instead of about-me
Expected behavior
Both links i.e. local links and generated links should work
Actual behavior
It only generates about-me link using which local navigation using obsidian or vs-code+foam doesn't work
Your environment

Public source code: https://github.com/deepaksood619/deepaksood619.github.io/blob/main/docs/databases/sql-databases/aaa-outline.md
Public site URL: https://deepaksood619.github.io/docs/databases/sql-databases/aaa-outline
Docusaurus version used: 2.3.1
Environment name and version (e.g. Chrome 89, Node.js 16.4): node 19
Operating system and version (e.g. Ubuntu 20.04.2 LTS): ubuntu-latest, Ubuntu 22.10 for github actions, local - macbook

Self-service

[ ] I'd be willing to fix this bug myself.

Hi, this is a feature. Please see https://github.com/facebook/docusaurus/issues/7725. If you want to link to that file, use [About me](./about-me/about-me.md).


Question: Is there a way to change the tool title from "Dashboard" ?

Looks hardcoded in the source, but curious!

It is configurable since v3.1.0!
I've opened a PR to add instructions to the readme, but TL;DR: pass a name, title and/or icon to the tool configuration!


express-close-server

Adds the functionality to close the server by app.close.
><EMAIL_ADDRESS>test-close
> mocha --require test/support/env --reporter spec --bail test/app.close.js

  app.close()
    ✔ Should close a single app instance
    ✔ Should close multipule app instances

  2 passing (22ms)

Accidently opened the PR from the wrong branch.


WIP initial commit for AVX 512 support

very very initial commit for AVX 512 support.

@JohanMabille It seems like AVX doesn't have the same comparison operations as AVX2 anymore. All of them return a mask (integer) instead of a vector type.
The question is: Should we implement the batch_bool for AVX512 types with an internal value of a __mask8/16/32? That would remove a couple of conversions, but I am unsure if we have assumptions on this in the code base.

Except if we try to instantiate a batch from a batch_bool, the code base should be independant from the internal storage type.
So yes we should implement batch_bool with __mask8/16/32, and then add constructor / conversion operator from __m512 in the batch_bool implementation if that's required.

The fallback implementation certainly does not use the same storage type for batch and batch_bool :)

This is how the BLIS folks test different intel archs on travis with the SDE: https://github.com/flame/blis/commit/d7f531b6999c30b721e4ad47859583779a1fb657

Hello, as mentioned in #116 I switched my code to use the AVX512 implementation from this branch of xsimd and found no performance differences with my own (limited) implementation. So it's a :+1: from me :)


[DOCS] Add 8.16.1 release notes

Adding release notes for 8.16.1

💚 All backports created successfully

Status
Branch
Result

✅
8.16

✅
8.17

✅
8.x

Questions ?
Please refer to the Backport tool documentation


Project does not compile

This project does not compile. I can debug and try to get this to work if you would like?

This is only a template project, but if you want to dig into why it does not compile you can

PR with fix here: https://github.com/webgoprojects/go-gin-template/pull/2

Thank you


Fixed #3036

Removed swiper.allowClick = false; in onTouchMove event. Having that line was sometimes causing clicks on pagination bullets to be inaccurate.
What was the original purpose for having that line there?
Test: https://next.plnkr.co/edit/qGE9irxx8wYgRJik?open=lib%2Fscript.js

No, it should be there to prevent clicks on links during swipe.

That makes sense. With that in mind, I modified the change so that it checks if the event target is a pagination bullet only. Let me know what you think.

Sorry, i think this is still a bit wrong. Swiping over pagination still must be possible without having it being clicked. So such prevention should be done if pagination is clickable and swiping was for a small distance (e.g. few pixels).
But why do we need this fix at all? There are still usecase where it will fail or introduce new issues. I would better just recommend to enable threshold swiper parameter instead

No worries, I'll admit this is a fringe issue. The original author indicated that this is a non-mobile issue which occurs somewhat randomly. I can continue to fine tune this change to detect the clickable property, or we can close this request and the issue and go with the threshold fix.


Unable to use different Currency without querying currencies first

As it is - I cannot query SkyScanner with the EUR currency - without querying all currencies first. In order to query in EUR, I now have to:
var currencies = await scanner.QueryCurrency();
var currentCurrency = currencies.FirstOrDefault(currency => currency.Code == "EUR");
....
var settings = new FlightResponseSettings(..., currentCurrency);
var itineraries = await scanner.QueryFlight(settings);

If you want to keep the Currency.Code modifier internal ( which makes sense ), how about we add:
public static Currency FromCode(string code) {
    return new Currency() { Code = code }
}

To Currency.cs  ?  Or we add it as constructor arguments - whichever you prefer.

Sounds good, that's what I did with the locations. https://github.com/tamasvajk/SkyScanner/blob/1fce0248f932d19af94d9215ef8abbc7dac153b7/src/SkyScanner/Data/Location.cs


Call a function when when file upload process starts

Any idea how to call a custom function when file upload function starts ?
Here's my code. I want to start a loader as soon as file upload process starts and close it when upload is completed.
$('.editable').mediumInsert({
                                  editor: editor,
                                  addons: {
                                    images: {
                                      deleteScript: 'deleteimage',
                                      deleteMethod: 'POST',
                                      fileDeleteOptions: {
                                                headers: {
                                                  'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                                                }
                                      },
                                      fileUploadOptions: {
                                            formData: [
                                                                {
                                                                    name: '_token',
                                                                    value: $('meta[name="csrf-token"]').attr('content')
                                                                }
                                            ],
                                            url: 'uploadimage',
                                            acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i
                                        },

                                    },
                                  }
                });

Thanks,
Chintan

There are 3 ways how to do it:

You can find a callback you want here: https://github.com/blueimp/jQuery-File-Upload/wiki/Options#callback-options and then just add it to fileUploadOptions option
You can add it to the insert plugin and submit a PR
You can extend the plugin and override a function you want:

var images = $('.editable').data('plugin_mediumInsertImages'),
    originalAdd = images.add;

images.add = function () {
    // do my customizations here

    originalAdd.call(images);
};

here in the first way how to use callback of fileuploadstart in fileuploadoption?


allow build with different dbus name

Feature description
hard coded values are usually bad and this code has "org.bluealsa" hard coded.  I would suggest changing this to be a configurable item so that different values such as org.bluez can be used.
Additional context
This is a suggestion rather than a requirement!.. I am attempting to build the latest bluez-alsa for Ubuntu 22.04 to see if that fixes some problems that I have found with the distribution version from the repo.  Ubuntu seem to use org.bluez for the dbus name so I would like to use the same so that my own built version will just replace the distribution version.
Without this change I get
bluealsa: W: UUID already registered in BlueZ [hci0]: 0000110B-0000-1000-8000-00805F9B34FB
bluealsa: W: UUID already registered in BlueZ: 00001108-0000-1000-8000-00805F9B34FB
I would expect to be able to configure the UUID and the dbus name at configure time so that I can build an slot in equivalent binary easily.

Ubuntu seem to use org.bluez

The D-Bus service name is a well known name of a service, like a domain name on the Internet. Using different name for org.bluealsa by Linux distribution would be like using a different name for google.com by ISP.
The org.bluez is "reserved" name for BlueZ service, so it's rather impossible that anyone will use that for BlueALSA. Also, it's rather impossible that some distribution will use any other name because some other 3rd party software might search for org.bluealsa to communicate with it.

Without this change I get
bluealsa: W: UUID already registered in BlueZ [hci0]: 0000110B-0000-1000-8000-00805F9B34FB
bluealsa: W: UUID already registered in BlueZ: 00001108-0000-1000-8000-00805F9B34FB

This error means that there is some other application which communicates with BlueZ and has registered these profiles. The warning message is printed by BlueALSA to help solve issues with not-working BlueALSA instance. Please see this: https://github.com/arkq/bluez-alsa/blob/master/TROUBLESHOOTING.md#4-using-bluealsa-alongside-pulseaudio-or-pipewire

thanks for the comments


Add transformImageUri option

This addresses issue rexxars/react-markdown#23

Sorry, somehow this slipped by me. Thanks!


Remove arbitrary props from DOM elements

This is a work in progress, since I'm stuck with a couple of case. Perhaps someone could help me with that? I skipped the two failing tests, I'll comment to explain my difficulties.

I updated the PR to fix the omitted tests, and rewrite some using data-amount, data-foo, to follow @ljharb. If everything's fine, I'll squash the commits, and rebase the whole branch!

LGTM @AugustinLF can you resolve the merge conflicts here? I think we can merge afterwards.

closes #480

Done! Should I squash the commits?

@AugustinLF i think you can simply remove the last two commits now :-)

@ljharb Yep, it's done!

I rebased the branch to fix the conflicts :)

Thanks @AugustinLF!


Fix an extra line is added when editing a one full line of a message

Details

When we edit a one full line message, another line is added to the text input.
Fixed Issues

$ https://github.com/Expensify/App/issues/27622
PROPOSAL: https://github.com/Expensify/App/issues/27622#issuecomment-1724072266
Tests

Same as QA Steps

[x] Verify that no errors appear in the JS console

Offline tests

Same as QA Steps
QA Steps

Open any chat
Send a message
Edit the message so it fills the first line
Save the edit message
Edit the message once again
Verify there is no extra line is added to the input/edit composer

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

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

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] If we are not using the full Onyx data that we loaded, I've added the proper selector in order to ensure the component only re-renders when the data it is using changes
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/50919443/c77e3881-33c4-4c39-a600-992aea8782c0

Android: mWeb Chrome

https://github.com/Expensify/App/assets/50919443/a4907ab0-fa79-4433-8d41-3274648ab52d

iOS: Native

https://github.com/Expensify/App/assets/50919443/08156219-c61b-4092-bf51-8bcbf2677ea6

iOS: mWeb Safari

https://github.com/Expensify/App/assets/50919443/e0961a07-8c48-4c5b-8659-6843ae4bf39d

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/50919443/8ec32bc9-cc82-49ea-b687-76c89dc55caf

MacOS: Desktop

https://github.com/Expensify/App/assets/50919443/7de4e086-281b-4b4f-be18-e98e725401ad

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/amyevans in version: 1.3.99-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/roryabraham in version: 1.3.99-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/amyevans in version: 1.4.0-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


fix: prometheus ingester: skip empty result - miss scrape interval

Fixed bug https://github.com/seznam/slo-exporter/issues/74

I'm afraid that the bug https://github.com/seznam/slo-exporter/issues/74 brought spotlight on more than one issue with how the previousResult 'cache' is implemented.

the first one is obvious, and appears to be fixed by this PR -   query's interval being smaller than Prometheus' scrape interval would periodically cause losing cache (it would be replaced by an empty result)
the second one, less probable. Cache is continously being replaced by a new state - as a whole. This implies that in case any timeseries is missing in a query result, its history is lost from queryExecutor.previousResult. Fixing this would require to merge the new results with the old ones (as was proposed by @RadekDvorak in the bug report) and also to introduce some TTL for queryExecutor.previousResult cache

@david-vavra is right, there should be also some "TTL" which is actually a staleness in Prometheus
I did some research and implemented the simple merging mechanism with staleness in the https://github.com/seznam/slo-exporter/pull/80
PTAL

So eventually implemented the staleness approach with cache, so if you don't mind @mpromain I'm closing this one.
But thank you for investigating the issue and the PR!


Add a proper README with examples and other information

Otherwise it looks a bit dead (which it is, but doesn't mean we can't improve the README).

I think this is resolved now, but even better documentation is welcome.


[Hub Generated] Review request for Microsoft.DocumentDB to add version preview/2023-09-15-preview

This is a PR generated at OpenAPI Hub. You can view your work branch via this link.
ARM (Control Plane) API Specification Update Pull Request
PR review workflow diagram
Please understand this diagram before proceeding. It explains how to get your PR approved & merged.

[1] ARM review queue (for merge queues, see [4])
The PRs are processed by time opened, ascending. Your PR may show up on 2nd or later page.
If you addressed Step 1 from the diagram and your PR is not showing up in the queue, ensure the label ARMChangesRequested
is removed from your PR. This should cause the label WaitForARMFeedback to be added.
[2] https://aka.ms/azsdk/support/specreview-channel
[3] List of SDK breaking changes approvers in pinned Teams announcement
[4] public repo merge queue, private repo merge queue (for ARM review queue, [1])
If you need further help with anything, see Getting help section below.
Purpose of this PR
What's the purpose of this PR? Check all that apply. This is mandatory!

[ ] New API version. (Such PR should have been generated with OpenAPI Hub, per this wiki doc.)
[ ] Update existing version for a new feature. (This is applicable only when you are revising a private preview API version.)
[ ] Update existing version to fix swagger quality issues in S360.
[ ] Other, please clarify:

edit this with your clarification

Due diligence checklist
To merge this PR, you must go through the following checklist and confirm you understood
and followed the instructions by checking all the boxes:

[ ] I confirm this PR is modifying Azure Resource Manager (ARM) related specifications, and not data plane related specifications.
[ ] I have reviewed following Resource Provider guidelines, including
ARM resource provider contract and
REST guidelines (estimated time: 4 hours).
I understand this is required before I can proceed to Step 2, "ARM Review", for this PR.

Breaking changes review (Step 1)

If the automation determines you have breaking changes, i.e. Step 1 from the diagram applies to you,
you must follow the breaking changes process.
IMPORTANT This applies even if:

The tool fails while it shouldn't, e.g. due to runtime exception, or incorrect detection of breaking changes.
You believe there is no need for you to request breaking change approval, for any reason.
Such claims must be reviewed, and the process is the same.

ARM API changes review (Step 2)

If this PR is in purview of ARM review then automation will add the ARMReview label.
If you want to force ARM review, add the label yourself.
Proceed according to the diagram at the top of this comment.

Getting help

For general PR approval workflow, see the diagram at the top of this comment.
For guidance on fixing this PR CI check failures, see the hyperlinks provided in given failure
and https://aka.ms/ci-fix.
If the help provided by the previous points is not enough, post to https://aka.ms/azsdk/support/specreview-channel and link to this PR.

    "enablePriorityBasedExecution": {

ARM recommends enums over booleans for future proof APIs.
Standard guidance is: replace boolean/switch properties with a more meaningful enum whenever possible.
A boolean will forever have two valid values (true or false). A string enum type is always preferred. Also, properties should always provide better values just than True and False. For example two switches "isTypeA" and "isTypeB" should be replaced with one enum "type": [A, B, DefaultType]. Enums are always a more flexible and future proof option because they allow additional values to be added in the future in a non-breaking way, e.g. [Enabled, Disabled, Suspended, Deallocated].
Note: do NOT define a 'boolean enum' with two values 'True and False'. This might be easier to 'extend' in terms of types, but semantically its cofusing, and no better than a boolean.

Refers to: specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2023-09-15-preview/cosmos-db.json:8590 in 3521555. [](commit_id = 35215554aef59a30fa709e4b058931101a5ef26b, deletion_comment = False)

/azp run

    "enablePriorityBasedExecution": {

ARM recommends enums over booleans for future proof APIs.
Standard guidance is: replace boolean/switch properties with a more meaningful enum whenever possible. A boolean will forever have two valid values (true or false). A string enum type is always preferred. Also, properties should always provide better values just than True and False. For example two switches "isTypeA" and "isTypeB" should be replaced with one enum "type": [A, B, DefaultType]. Enums are always a more flexible and future proof option because they allow additional values to be added in the future in a non-breaking way, e.g. [Enabled, Disabled, Suspended, Deallocated]. Note: do NOT define a 'boolean enum' with two values 'True and False'. This might be easier to 'extend' in terms of types, but semantically its cofusing, and no better than a boolean.
Refers to: specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2023-09-15-preview/cosmos-db.json:8590 in 3521555. [](commit_id = 3521555, deletion_comment = False)

Hey @sjanamma. Sorry I missed this. I see that other features are using booleans only. Also, this is not a property where we would have any values other than true or false. The backend expects a boolean. Is it ok if we leave it as is for consistency?

    "enablePriorityBasedExecution": {

ARM recommends enums over booleans for future proof APIs.
Standard guidance is: replace boolean/switch properties with a more meaningful enum whenever possible. A boolean will forever have two valid values (true or false). A string enum type is always preferred. Also, properties should always provide better values just than True and False. For example two switches "isTypeA" and "isTypeB" should be replaced with one enum "type": [A, B, DefaultType]. Enums are always a more flexible and future proof option because they allow additional values to be added in the future in a non-breaking way, e.g. [Enabled, Disabled, Suspended, Deallocated]. Note: do NOT define a 'boolean enum' with two values 'True and False'. This might be easier to 'extend' in terms of types, but semantically its cofusing, and no better than a boolean.
Refers to: specification/cosmos-db/resource-manager/Microsoft.DocumentDB/preview/2023-09-15-preview/cosmos-db.json:8590 in 3521555. [](commit_id = 3521555, deletion_comment = False)

Hey @sjanamma. Sorry I missed this. I see that other features are using booleans only. Should

/pr RequestMerge


MINOR: Merge trunk

Need to resolve a merge-conflict in gradle/dependencies.gradle due to version bump of scalaLogging (cf 274eccf#diff-02b139e755ab0e27e0b0a6f9845843ef189116955cc340c49a4022587dbb2b52)

@ijuma I think the failed tests are known to be flaky? Merge? Or rerun Jenkins?
kafka.network.DynamicConnectionQuotaTest.testDynamicListenerConnectionQuota()
kafka.network.DynamicConnectionQuotaTest.testDynamicListenerConnectionCreationRateQuota()

Seems fine to merge.

Please make sure not to use the GitHub merge button, you should push your branch to master directly.


Cleanup Event Handling code to match style of tooltip plugin.

I noticed this while investigating #4118.
Eliminates saving two arrays of items on the chart prototype and makes the API private. The onHover
callback now receives the wrapped event instead of the native one.

Does this also resolve #4978?

Appears to resolve #4978 as well! Great catch