New package: jazzdelightsme.WingetPathUpdater version 1.0

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: codeflow:open?pullrequest=https://github.com/microsoft/winget-pkgs/pull/115650&drop=dogfoodAlpha

SmartScreen was blocking the download of the EXE... but I believe that should be cleared up now; let's try again.
/AzurePipelines run

This is the entirety of the log of the failed task:
8/9/2023 6:07:57 AM

****************************************************************************************
Installation Verification
****************************************************************************************
Status: Started
==============================================================================
Task         : Installation Validation
Description  : Invoke an Azure Function
Version      : 1.220.0
Author       : Microsoft Corporation
Help URL     : https://docs.microsoft.com/azure/devops/pipelines/tasks/utility/azure-function
==============================================================================
2023-08-09T06:07:58.7782704Z POST ***?code=***&
Request body: {
  "operationId": "WinGetSvc-Validation-309-115650-20230808-1",
  "BuildId": "485235",
  "PlanUrl": "https://dev.azure.com/ms/",
  "HubName": "build",
  "ProjectId": "ed6a5dfa-6e7f-413b-842c-8305dd9e89e6",
  "PlanId": "4046b19e-201d-45d6-a52a-39ebdfed855c",
  "JobId": "8bd16c8d-8352-5068-a6a9-f8dac8932ab2",
  "TimelineId": "4046b19e-201d-45d6-a52a-39ebdfed855c",
  "TaskInstanceId": "b4fb1ea3-54c6-5082-c163-925ab0c658d6",
  "AuthToken": ***
}
				Response Code: OK
				Response:

8/9/2023 6:10:57 AM

****************************************************************************************
Installation Verification
****************************************************************************************

-----------------------------------------------------
Result: Failed
-----------------------------------------------------
Status: Completed

I don't see what went wrong... :( Is there any way to get more info about what isn't working on the pipeline machines?

Like... there's not even an exit code from my EXE! :'(

Does this do what I hope it does?
/AzurePipelines run

/AzurePipelines run

This installer installs fine on machines that I have tried... I don't know why it is failing to install on the pipeline machines.
It should have written some diagnostic information to: $env:TEMP\WingetPathUpdaterFailure2.txt
Is there any way to collect that log upon failure? Is there some other way it should emit diagnostic information, in order to be diagnosable?

Automatic Validation ended with:

2023-08-09 18:52:17.791 [CLI ] Installer args: -NoProfile -ExecutionPolicy Bypass -Command . { try { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 ; iex "& { $(Invoke-WebRequest https://raw.githubusercontent.com/jazzdelightsme/WingetPathUpdater/v1.0/WingetPathUpdaterInstall.ps1) } -SilentWithProgress $args" ; exit $LastExitCode } catch { Write-Error $_ ; $_ | fl * -Force | Out-String | sc $env:TEMP\WingetPathUpdaterFailure2.txt ; start-sleep -seconds 15 ; exit -3 } }
2023-08-09 18:52:17.794 [CLI ] Starting: 'C:\Users\VALIDA~1\AppData\Local\Temp\WinGet\jazzdelightsme.WingetPathUpdater.1.0\PowershellStub.exe' with arguments '-NoProfile -ExecutionPolicy Bypass -Command . { try { [Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12 ; iex "& { $(Invoke-WebRequest https://raw.githubusercontent.com/jazzdelightsme/WingetPathUpdater/v1.0/WingetPathUpdaterInstall.ps1) } -SilentWithProgress $args" ; exit $LastExitCode } catch { Write-Error $_ ; $_ | fl * -Force | Out-String | sc $env:TEMP\WingetPathUpdaterFailure2.txt ; start-sleep -seconds 15 ; exit -3 } }'
2023-08-09 18:52:36.185 [CLI ] ShellExecute installer failed:<PHONE_NUMBER>
2023-08-09 18:52:36.186 [CLI ] Terminating context: 0x8a150006 at D:\a_work\1\s\external\pkg\src\AppInstallerCLICore\Workflows\InstallFlow.cpp:1bf

This error is unexpectedly verbose, and appears to have a PowerShell section in the installer args.

Hi @jazzdelightsme,
The package downloads normally, but fails to install:

Here is the log file $env:TEMP\WingetPathUpdaterFailure2.txt:
PSMessageDetails      :
Exception             : System.NotSupportedException: The response content cannot be parsed because the Internet
                        Explorer engine is not available, or Internet Explorer's first-launch configuration is not
                        complete. Specify the UseBasicParsing parameter and try again.
                           at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.VerifyInternetExplorerAvailable(Boolean
                        checkComObject)
                           at Microsoft.PowerShell.Commands.InvokeWebRequestCommand.ProcessResponse(WebResponse
                        response)
                           at Microsoft.PowerShell.Commands.WebRequestPSCmdlet.ProcessRecord()
TargetObject          :
CategoryInfo          : NotImplemented: (:) [Invoke-WebRequest], NotSupportedException
FullyQualifiedErrorId : WebCmdletIEDomNotSupportedException,Microsoft.PowerShell.Commands.InvokeWebRequestCommand
ErrorDetails          :
InvocationInfo        : System.Management.Automation.InvocationInfo
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1
                        at <ScriptBlock>, <No file>: line 1
PipelineIterationInfo : {}

We might not yet support this type of installer or package.

Thanks for getting me over the hump, @stephengillie! I think I know what caused the last failure, and I've pushed another commit that also adds log support. Is the bot supposed to automatically run the validation pipeline, or does someone have to trigger it?

/AzurePipelines run

Thanks for getting me over the hump, @stephengillie! I think I know what caused the last failure, and I've pushed another commit that also adds log support. Is the bot supposed to automatically run the validation pipeline, or does someone have to trigger it?

It's supposed to run automatically on changes. Thanks for your patience.

@stephengillie I see that all the validation mostly passed, with the exception of this warning from the "installation validation" step:
##[warning] Validation concluded that this task needs to go to manual review.

I also see that there is a "Validation-No-Executables" tag/label that has been added. I am guessing here, but it sounds like that could be because some validation automation looked at what the installer did and said "hey, I didn't find any new EXEs on the system after the thing got installed, what gives?"
If that is the case, then I'll give the explanation: that is expected. This installer only installs a couple new scripts: a .ps1, and a .cmd, and then one or two other files that support those. So "no new EXEs" is expected and fine.

@wingetbot waivers Add Validation-No-Executables

@stephengillie I see that all the validation mostly passed, with the exception of this warning from the "installation validation" step:
##[warning] Validation concluded that this task needs to go to manual review.

I also see that there is a "Validation-No-Executables" tag/label that has been added. I am guessing here, but it sounds like that could be because some validation automation looked at what the installer did and said "hey, I didn't find any new EXEs on the system after the thing got installed, what gives?"
If that is the case, then I'll give the explanation: that is expected. This installer only installs a couple new scripts: a .ps1, and a .cmd, and then one or two other files that support those. So "no new EXEs" is expected and fine.

Yes, our robot got confused by the lack of EXEs. Thanks for the quick explanation. @dnelon also gave me some background on this package. Feel free to @ me if I can help again.

/AzurePipelines run

/azp run

@jazzdelightsme if a user uninstalls this package, do the files get removed?
I was just curious. @Trenly is working on an "upgrade behavior" none for a couple of packages that don't actually update the program like the Chocolatey Installer.
If uninstalling this program doesn't actually remove those other files, we should consider how to help a user reason about what might have gotten left behind.

@denelon:

if a user uninstalls this package, do the files get removed?

Yes, everything gets removed on uninstall.
If a user installs it, and then they just re-run the install, it can tell if the script files look like they came from my package (it just looks for a particular string), and if so it just re-writes them (so if I came up with a v2, or if a user modified a script and wanted to reset it, it would just work).
Oh, wait, when I was testing the local manifest, it was convenient to be able to just keep re-running the install. But "just re-run the install" is apparently not a thing once you are using an actual published package--I just tried it, and it says "hey it's already installed, and there's no upgrade available". So that's fine, too.
If the script files exist on disk, but they don't look like they came from my package, install (and uninstall, too, actually) will fail (with an error saying so). And you can force-overwrite by saying "winget install WingetPathUpdater --custom "-Force"".
I did find one funny thing: if you are in cmd.exe, and you have WingetPathUpdater installed (so you are using winget.cmd), then you winget uninstall WingetPathUpdater, it successfully uninstalls the package, but right at the very end, you get a message "The batch file cannot be found", because we deleted winget.cmd right out from under cmd. Oh well. Who uses cmd, anyway?! 🤪

LOL! I think we can live with that.
Let me know when you update the issue. I'll tweet about it.

Done: https://github.com/microsoft/winget-cli/issues/549#issuecomment-1675410316
BTW, THANK YOU, @stephengillie for getting this one through the system!

Also BTW: I filed my first Issue: https://github.com/jazzdelightsme/WingetPathUpdater/issues/1
One of the packages I tried added other environment variable names to the PATH (like "%NVM_HOME%"), instead of adding an actual path. So there may be a 1.1 coming out soon...


Equality of devito injections

it seems like doing an equality check on two inject objects always returns true
import devito

shape = (11,11)
grid = devito.Grid(shape=shape)
f1 = devito.Function(name="f1", grid=grid)
u1 = devito.TimeFunction(name="u1", grid=grid)
u2 = devito.TimeFunction(name="u2", grid=grid)

q = devito.SparseTimeFunction(name="q", grid=grid, npoint=1, nt=5)
r = devito.SparseTimeFunction(name="r", grid=grid, npoint=3, nt=5)

inj1 = q.inject(field=u1.forward, expr="2*q")
inj2 = q.inject(field=u2.forward, expr="2*q")
inj3 = r.inject(field=f1, expr="r")

print(inj1 == inj2)
print(inj1 == inj3)

What about is, i.e inj1 is inj2

is seems to have the desired behavior.
Are there other devito objects that behave this way?  For the most part it seems like == functions as expected

In general, == should be avoided for non-basic comparisons (numbers, length, ....) as it is greedier and doesn't always compare things the right way. It merely check "are this equals" not "are these two objects the same" which is slightly different.
For example inj1 = q.inject(field=u1.forward, expr="2*q") and inj1b = q.inject(field=u1.forward, expr="2*q") are == in every sense possible but are different object. SO == would always return true no matter what but is will not.
If you go through devito you'll see we only use == to compare values and strings, everything else is compared via is which, in addition to be more controllable and better behaved for objects, is usually faster too.

Does the is operator work because of Sympy's object caching returning the same object?

I don't think so. is is comparing the object itself, or if define its state (i.e https://github.com/devitocodes/devito/blob/47f81ee7d1f81ef58f2dea11c9a75ba49fe3f970/devito/finite_differences/derivative.py#L88) while == goes through __eq__ if implemented.
I don't always completely get the subtle differences between the two, but as a rule of thumb == is more of a numeric/string comparison to avoid odd objects behaviors


Post to only 2 of the 3 subscribers listening for the same event

Note: This is more of a suggestion if does not already exists
It would come quite handy if it is possible to have the ability to limit/restrict/allow which of the registered subscribers of the same event that the event is delivered to at the time of posting an event.

This should be handled by the listeners buy either subscribing to different sets of event or filtering an event based upon some information. There is no need (and lots of reasons not to) complicate the delivery mechanism.

@william-ferguson-au Thanks for the prompt reply.
What is being suggested is trying to avoid adding fields in the event to determine the logic, because if a particular event has a lot of subscribers (over 10), then all subscriber methods will need to add logic to determine if it should handle the event posted, it would be much either to pass an array of classes that define the scope of the event being posted.
Please could you follow up on this issue(suggestion) if in the near future, a feature is implemented that meets the above mentioned requirements.
Much appreciated!

In that case you should be posting different events.
There is absolutely no good reason to add this functionality to the infrastructure of an EventBus.

Kind of agree with @william-ferguson-au on keeping EventBus as simple as possible. Adding a simple check (super class method, static helper method, or a method inside the event class?) or using different events should is the way to go. -ut

@william-ferguson-au @greenrobot-team Thanks for the response, much appreciated.


Re-sync topology upon PUBSUB connection

As soon as we make a PUB/SUB connection, we should retrieve the current topology, to ensure the flipper_client is up-to-date.
If for any reason we loose connectivity (such as a detectable TCP failure), this ensures any missed +switch-master events can be mitigated.
This works by

creating a new channel between the Manager <= Monitor.
firing a ConnectionEvent upon confirmation of SUBSCRIBE +switch-master
The Manger will then fetch the current topology
Inject MasterSwitchedEvent into the unthrottled connectionChannel

This means we can also remove the startup intiliseTopology(), as we know that same kind of event will take place upon any sentinel connection now.
The various flapper_clients will likely start to receive more events (depending on your Cluster + Sentinel count), but being consistent and reliable is the key here.

Looks like the Travis build did complete, but it couldn't talk to "Coveralls":
Bad response status from coveralls: 422 - {"message":"Couldn't find a repository matching this job.","error":true}

I've restarted the build - will check back later

Great work


fix: default light theme splash 🔧

🔧 fixed loading screen and default theme always set to light
resulting in white screen splash before switching to dark mode

Note
the explanation below assumes the case when the user has previously selected dark theme and its value is stored in the local storage. But the changes are compatible with both themes.
Previous Behavior

app loads and shows the white loading screen <LoadingMessage /> while the language is being set (the app is being initialized - initializeApp.ts).
the canvas renders with the default app state assuming the theme to be light.
the app state from local storage resolved [initialData] prop and the theme is then set to dark as previously set by the user.

Problem
Splash of white screen
👇
https://www.loom.com/share/6ac6615a26a44125b8b04080f20936bf
After Fix
https://www.loom.com/share/28a59418d1b7432ab91e7ffe5ca47ee8
Caveats
the current approach introduces another prop defaultTheme. I am not sure if we have the bandwidth for another prop.

Inside the App, the only apparent way to access the theme from the user's browser is to resolve initialData prop. But during the time it's being resolved, the default theme value from the initial state would still render a white canvas (the whole app in light theme).
theme prop cannot be set to the value from the local storage as it is a decisive prop for the @excalidraw/excalidraw package. Setting this by default will disable theme switching.

Suggestions and improvements are welcome 😊.

pushed some tweaks. What's left is readme & changelog updates to reflect this and we can merge!

I would suggest to rename the prop to UIOptions.canvasActions.theme to UIOptions.canvasActions.switchTheme ? So it's more clear, right now its confusing as we have 3 ways for theme => initialData.theme,  UIOptions.canvasActions.themeandtheme` prop.

agreed.
On Tue, Sep 13, 2022, 4:22 PM Aakansha Doshi @.***>
wrote:

I would suggest to rename the prop to UIOptions.canvasActions.theme to
UIOptions.canvasActions.switchTheme ? So it's more clear, right now its
confusing as we have 3 ways for theme => initialData.theme,
UIOptions.canvasActions.themeandtheme` prop.
—
Reply to this email directly, view it on GitHub
https://github.com/excalidraw/excalidraw/pull/5660#issuecomment-1245269731,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APKQZHOTY3UUTTACWSEGXBTV6BPWNANCNFSM6AAAAAAQEAQ66A
.
You are receiving this because you were mentioned.Message ID:
@.***>

I would suggest to rename the prop to UIOptions.canvasActions.theme to UIOptions.canvasActions.switchTheme.
So it's more clear, right now its confusing as we have 3 ways for theme => initialData.theme, UIOptions.canvasActions.themeandtheme` prop.

toggleTheme to align with the rest of the codebase.

I'll take care of renaming the prop. I think we should go with @dwelle suggestion <toggleTheme>. @ad1992 Please confirm.

Sure lets do it @mabdullahadeel  👍🏻

@ad1992 @dwelle
Can you guys please help me with tests failing? There seems to be no problem with passing the correct value of showThemeBtn prop to LayerUI. So is this an issue with memoization?

@ad1992 @dwelle
Can you guys please help me with tests failing? There seems to be no problem with passing the correct value of showThemeBtn prop to LayerUI. So is this an issue with memoization?

@mabdullahadeel there is a bug in the code hence the tests are failing, If UIOptions is undefined or UIOptions.canvasActions i sundefined , the toggle dark theme should be rendered (as all actions are rendered in default case) which is not happening anymore so can you fix that ?

@ad1992
I have investigated and turned out that the UIOptions object is defined as expected in the App.tsx. Furthermore, the toggle is not being rendered even by manually passing true to showThemeBtn when theme and UIOptions are not explicitly defined as props.

If you inspect these changes, only the prop name has been changed.
Everything is working fine before that commit.

If you inspect these changes, only the prop name has been changed.
Everything is working fine before that commit.

If you inspect these changes, only the prop name has been changed.
Everything is working fine before that commit.

Yes I can see that, the issue is if you try passing the props as undefined I mentioned above in excalidraw-app/index.tsx the theme button is not being rendered which is not expected so will need to check that

Ok, I have fixed the bug and now the tests have passed, glad we had tests to catch this!
Let me know if the fix I pushed looks fine
@mabdullahadeel @dwelle

@ad1992
I still don't get it. why just changing UIOptions.canvasActions.theme to UIOptions.canvasActions.toggleTheme caused this issue?
Just to be sure, I renamed toggleTheme back to theme and everything was working as expected 😂.

@ad1992 I still don't get it. why just changing UIOptions.canvasActions.theme to UIOptions.canvasActions.toggleTheme caused this issue?
Just to be sure, I renamed toggleTheme back to theme and everything was working as expected 😂 (theme: undefined, UIOptions: undefined).

Yeah this was a tricky bug, the issue was due to this condition evaluating to false and theme button not being rendered ascanvasActions["toggleTheme"] was null
(action.name in canvasActions
            ? canvasActions[action.name as keyof typeof canvasActions]
            : true)

The reason it was working in previous commit was because the action was renamed to toggleTheme but the canvasActions prop wasn't hence this condition was always evaluating to true as the canvasActions didn't have any prop  toggleTheme

@ad1992 I still don't get it. why just changing UIOptions.canvasActions.theme to UIOptions.canvasActions.toggleTheme caused this issue?
Just to be sure, I renamed toggleTheme back to theme and everything was working as expected 😂 (theme: undefined, UIOptions: undefined).

Yeah this was a tricky bug, the issue was due to this condition evaluating to false and theme button not being rendered ascanvasActions["toggleTheme"] was null
(action.name in canvasActions
            ? canvasActions[action.name as keyof typeof canvasActions]
            : true)

The reason it was working in previous commit was because the action was toggleTheme but the canvasActions prop was still them hence this condition was always evaluating to true as the canvasActions didn't have any prop toggleTheme

Hah, I just went down the same rabbit hole to figure this out.
I'm not sure we should be adding this implicit logic there — it's really hidden and will bite us again as it did here.
I'll think on what to do later, for now I've removed the showThemeBtn which is now redundant.

@mabdullahadeel thanks for the PR and patience! 🚀 ❤


[v3] Warning about missing email adapter even though it is configured

Link to reproduction
No response
Describe the Bug
My config contains this email section:
  email: nodemailerAdapter({
    defaultFromAddress: process.env.SMTP_FROM_ADDRESS || '',
    defaultFromName: 'Payload',
    transport: nodemailer.createTransport({
      host: process.env.SMTP_HOST || '',
      port: process.env.SMTP_PORT ? parseInt(process.env.SMTP_PORT) : 587,
      auth: {
        user: process.env.SMTP_USER || '',
        pass: process.env.SMTP_PASS || '',
      },
    }),
  }),

But I still get this warning when running payload:
WARN: No email adapter provided. Email will be written to console. More info at https://payloadcms.com/docs/email/overview.

Not sure if I am doing something wrong or whether this is a bug? I wasn't able to test the adapter yet, but either it isn't picked up or something else is going on :)
To Reproduce

add a nodemailer adapter
see error

Payload Version
beta24
Adapters and Plugins
No response

PEBKAC, issue resolved


Update live with current master

@scottaddie Feel free to revert #13799 and re-merge staging. I was trying to get a leg up, and that ended in :boom::cry:.

Either that or merge anyway ... I'll fix up any breakages on master immediately thereafter.

@guardrex Is this something you can fix in master before I publish this PR?

As far as Blazor is concerned, master is fine.  Go ahead and :shipit:. I've visually inspected the files, and they're fine.

I have sample updates coming right now for master. You can wait for those if you want. The PR will be up within a minute. 🏃

I'll wait until I hear from you.

@scottaddie Ok ... that should do it for now.
I have another round of lower priority Blazor updates that I'll get in soon and then take to live later tonight.


Use of Monolog in __construct?

I just updated my resumable.php package and noticed all my upload code stopped working. Looks like you added monolog support a few months ago and your class is trying to instantiate the monolog class in the constructor method. Monolog is defined as a dev dependency in your package though so it won't pull in when other users want to use your package.

@georaldcamposano thanks for reporting.  would you like to contribute a PR?

Done (didn't notice I was using my other account when I created the issue)

Merged.
Thanks for the code.


Classes not being merged from parent to child component (in client-only components)

Environment

Operating System: Linux
Node Version:     v16.14.2
Nuxt Version:     3.5.3
Nitro Version:    2.4.1
Package Manager<EMAIL_ADDRESS>Builder:          vite
User Config:      -
Runtime Modules:  -
Build Modules:    -

Reproduction

https://stackblitz.com/edit/nuxt-starter-mavf4s?file=components%2FTest.vue
Describe the bug
If we do client only in a child, neither the client only or the template got the class merged from parent.
Where in the component without client-only it got merged properly.
This have bit fixed for an other flavour of it already here: https://github.com/nuxt/nuxt/issues/15039
Additional context
No response
Logs
No response

you need to have a single root component for it to automatically inherit its parent classes,
try remove the other

@Hossam01001000 I'm not sure to understand, there are only one div in the client-side, the template fallback is only for server side.

you can do it manually with v-bind="$attrs"
for more info
https://vuejs.org/guide/components/attrs.html#attribute-inheritance-on-multiple-root-nodes

I don't understand where do you see multiple root component, it's only one the other is a template present only in server side where the first one is not


[new-codebundle-request] - AWS EBS Storage Healthcheck

What cloud platform(s) should this support?
AWS, c7n
What are some key tasks that should be performed?
Check for Unattached EBS Volumes in AWS Region ${AWS_REGION} in AWS account ${AWS_ACCOUNT_ID}
Check for Unencrypted EBS Volumes in AWS Region ${AWS_REGION} in AWS account ${AWS_ACCOUNT_ID}
Check for Unused EBS Snapshots in AWS Region ${AWS_REGION} in AWS account ${AWS_ACCOUNT_ID}
Any other helpful context?
No response
Contact
None

https://github.com/runwhen-contrib/aws-c7n-codecollection/pull/2


Cannot save configuration on UI of related Nodes

Expected behavior and actual behavior
The property should be displayed on all the nodes when the configurations are saved.
The current behavior is even after saving configuration the UI still displays rid's for other related nodes for the same type.
Steps to reproduce the problem
Input 2 different class contact and firm that extend V
Create a class account that extends E
Create relationship between such that  contact -- [account] --> firm
Then write a select query
select * from contact
Double click on any contact node to see the related firms.
select the property of firm and save configuration.
Important Questions
Runninng Mode
Embedded, using PLOCAL access mode
OrientDB Version

[x] v2.2.x - Please specify last number: 4

Operating System

[x] Windows

Java Version

[x] 8

Are you logged with root user?

yes i am logged in by username:admin and pass: admin

@maggiolo00 could you suggest a temporary work around for this feature?

Do you have a screenshot?

@maggiolo00 the above is the screen shot. Check the surrounding nodes. You could see the rids, on the bubble and only one has changed as the name (shown in settings on left pane).

@sagarmaniar
the dashed circle means that the node data is not loaded yet. Studio cannot display the property name because it does not have the data yet. If you click over the node it is lazy loaded and the property should be populated. This will change in the next version 2.2.6 with a major improvement of the graph rendering

@maggiolo00 What is the expected release date for 2.2.6 version?

@maggiolo00 Thanks! Just the last question.. So in the next release the properties will be populated without having to click on individual nodes. Am I right?

Yes

@maggiolo00 2.2.6 version which is released today also has the same problem mentioned above in terms of graph rendering. Could you please help me out with it. Thanks!

@sagarmaniar
this feature has been delayed to 2.2.7

Is this already fixed? Can we close it?

@lvca yes please close this

Cool, thanks.


Update css to use variables

We have lots of repeated instances of colors, fonts, and dimensions that should be abstracted to css variables.
Details:
https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables

Completed in https://github.com/OriginProtocol/demo-dapp/commit/16e3b967aa799a6d5869d9db28953b54fccf7059


npm run start/electron index.js issue

Building it with npm install seems all fine but i get these errors when i try to run :
npm run start : https://gyazo.com/2ceb769427bc40c510fca592691b6034
electron index.js : https://gyazo.com/5c3be9ad9471a18bad3c63dc6a071d84
Any help would be greatly appriciated!

I'm getting the exact same problem. @canaltinova Any ideas?


Empty Strings Accepted in ARM template but not in the New-AzUniqueString function

Hello,
First of all, thank you very much for your module which is making my life a lot easier dealing with the unit and integration tests.
I've noticed though a difference between the behaviour in ARM and in your "New-AzUniqueString" function: ARM accepts empty strings as parameters and its result varies whether empty strings are passed or not.
Examples:

ARM

uniqueString('test')     --> "rbgf3xv4ufgzg"
uniqueString('test', '')  --> "ztqsfnyb6v7h6"

New-AzUniqueString

New-AzUniqueString -InputStrings @('test')  --> "rbgf3xv4ufgzg"
New-AzUniqueString -InputStrings @('test','') --> New-AzUniqueString: Cannot bind argument to parameter 'InputStrings' because it is an empty string.

Suggested Code:
function New-AzUniqueString {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$false)]
        [string[]]$InputStrings
    )

    if ($InputStrings) {
        $parameters = [Azure.Deployments.Expression.Expressions.FunctionArgument[]]::new($InputStrings.Count)
        (0..($InputStrings.Count-1)) | ForEach-Object { $parameters[$PSItem] = [Newtonsoft.Json.Linq.JValue]::new($InputStrings[$PSItem]) }

        $expressionBuiltInFunction = [Azure.Deployments.Expression.Expressions.ExpressionBuiltInFunctions]::new()
        return ($expressionBuiltInFunction.EvaluateFunction(
            "uniqueString",
            $parameters,
            [Azure.Deployments.Expression.Expressions.ExpressionEvaluationContext]::new()
        ).ToString())
    }
}

Thank you @JorgeDios that is a great find!
I'd prefer to keep the parameter mandatory, but I think just adding the AllowEmptyString() decorator would do the trick.
I'll give it a try and do a new release.

Seems to be working, I just released 0.2.7 to PowerShell gallery.

@SimonWahlin Thank you for the quick fix (0.2.7). AllowEmptyString() is indeed the way to go.


Ensure submenu items are obvious to end user

This commit makes a few changes in order for the navigation menu
to appear as if it has submenu items.

Add ids to each page so that they can be uniquely identified when
it comes to determining which one is active. This is important for
styling purposes.

Remove the top Menu bar from the navmenu to match the other show
case applications.

Add some styling for active and submenu items so that they are
more obvious to the end user.

Format any touched files.

@wei-lee @ciaranRoche Mind taking a look?

:eyes:


Return related models for CommentsController::requestForUser()

Reported by Predominant | September 23rd, 2010 @ 07:55 AM
"Return also related models: find a way to automatically bind related models to comments"
Note:
This ticket was converted from an inline comment.

In model possible overload behavior commentBeforeFind method like this
/**

Prepare models association to before fetch data

@param array $options

@return boolean

@access public
*/
public function commentBeforeFind($options) {
$result = $this->Behaviors->dispatchMethod($this, 'commentBeforeFind', array($options));
 $userModel = $this->Behaviors->Commentable->settings[$this->alias]['userModelAlias'];
 $this->Comment->bindModel(array('belongsTo' => array(
 	'Profile' => array(
 		'className' => 'Profile',
 		'foreignKey' => false,
 		'conditions' => array('Profile.user_id = ' . $userModel . '.id')
 	)
 )), false);
 return $result;

}


[BUG] Cann´t compile

Bug report
Describe the bug
Add a description of the bug. Detail the expected behavior in contrast with the behavior you're observing.
Additional information

used Hardware:

ESP32 or ESP8266
EspHoMaTriXv2 version: [e.g. 2023.7.0]
Ulanzi TC001

To Reproduce
Just try to compile the ulanzi-easy.yaml
Expected behavior
no error message :)
Configuration
plain unchanged ulanzi-easy.yaml
Screenshots
If applicable, add screenshots to help explain your problem.
Logs
INFO Reading configuration /config/esphome/ulanzi-easy.yaml...
WARNING
WARNING Please check the documentation and wiki https://github.com/lubeda/EspHoMaTriXv2
WARNING This will only work with esphome >= 2023.7.0
WARNING
WARNING GPIO15 is a Strapping PIN and should be avoided.
Attaching external pullup/down resistors to strapping pins can cause unexpected failures.
See https://esphome.io/guides/faq.html#why-am-i-getting-a-warning-about-strapping-pins
INFO Detected timezone 'Europe/Berlin'
INFO Detected timezone 'Europe/Berlin'
INFO Generating C++ source...
INFO Preparing icons, this may take some seconds.
INFO EsphoMaTrix: wrote html-file with icon preview: /config/esphome/ulanzi-easy.html
INFO List of icons for e.g. blueprint:

["error","home_assistant","temperature","lightbulb","music","phone","car","sleep8x32",]

INFO Compiling app...
Processing ulanzi (board: esp32dev; framework: arduino; platform<EMAIL_ADDRESS>--------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5
Dependency Graph
|-- AsyncTCP-esphome @ 1.2.2
|-- WiFi @ 2.0.0
|-- FS @ 2.0.0
|-- Update @ 2.0.0
|-- ESPAsyncWebServer-esphome @ 2.1.0
|-- ESPmDNS @ 2.0.0
|-- Wire @ 2.0.0
|-- ArduinoJson @ 6.18.5
|-- NeoPixelBus @ 2.7.3
Compiling /data/ulanzi/.pioenvs/ulanzi/src/esphome/components/ehmtxv2/EHMTX.cpp.o
Compiling /data/ulanzi/.pioenvs/ulanzi/src/esphome/components/ehmtxv2/EHMTX_icons.cpp.o
In file included from src/esphome.h:25,
                 from src/esphome/components/ehmtxv2/EHMTX.cpp:1:
src/esphome/components/ehmtxv2/EHMTX.h:6:10: fatal error: esphome/components/animation/animation.h: No such file or directory
 #include "esphome/components/animation/animation.h"
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [/data/ulanzi/.pioenvs/ulanzi/src/esphome/components/ehmtxv2/EHMTX.cpp.o] Error 1
In file included from src/esphome.h:25,
                 from src/esphome/components/ehmtxv2/EHMTX_icons.cpp:1:
src/esphome/components/ehmtxv2/EHMTX.h:6:10: fatal error: esphome/components/animation/animation.h: No such file or directory
 #include "esphome/components/animation/animation.h"
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [/data/ulanzi/.pioenvs/ulanzi/src/esphome/components/ehmtxv2/EHMTX_icons.cpp.o] Error 1
========================== [FAILED] Took 1.49 seconds ==========================```

## Services calls

```text
(optional) The YAML of your service calls

Hi, in your issue, you forgot to mention your update to esphome to 2023.7.0.
There is a workaround, see here: https://github.com/lubeda/EsphoMaTrixv2

Yes, i was on 2023.7.0 before the clock arrived today.
and, yes, I have not checked if your mentioned additions where already included in the template yaml because the last update was only three days ago. My fault.
Yes. it compiles with the additional lines. Thanks


Wirtek-Cities displayed on https://scrapers.peviitor.ro/ are not the same as cities displayed on the Wiretek website.

ENVIROMENT: production
URL: https://scrapers.peviitor.ro/
Browser: Chrome
Device: laptop
OS: Windows
STEPS TO REPRODUCE:

Open "https://scrapers.peviitor.ro/"

Type "wirtek" in the search bar.

Check the location.

Open the link "https://www.wirtek.com/careers".

Check the location.

EXPECTED RESULTS:
The location for each job displayed on "https://scrapers.peviitor.ro/" should be the same as the ones displayed on "https://www.wirtek.com/careers."
ACTUAL RESULT:
On "https://scrapers.peviitor.ro/" for each job, the location displayed is "Romania" but on "https://www.wirtek.com/careers" the jobs have different locations ("remote", "Cluj-Napoca," "Bucharest".

Done!


Produce failed when I consumed message first

I read message from a kafka topic and got row data, then I converted each data to json format and did some clean job to filter useful information, then I converted it back to row data and finally produce this message to another kafka topic.
But When I call await producer.ProduceAsync, the program crash immediately without any useful exception information.
===========
My code is like this:
`public static YamlMappingNode configs;
public static void Main(string[] args)
{
using (var reader = new StreamReader(Path.Combine(Directory.GetCurrentDirectory(), ".gitlab-ci.yml")))
{
var yaml = new YamlStream();
yaml.Load(reader);
    //find variables
    configs = (YamlMappingNode)yaml.Documents[0].RootNode;
    configs = (YamlMappingNode)configs.Children.Where(k => k.Key.ToString() == "variables")?.FirstOrDefault().Value;

}

//Console.WriteLine($"Started consumer, Ctrl-C to stop consuming");

CancellationTokenSource cts = new CancellationTokenSource();
Console.CancelKeyPress += (_, e) => {
    e.Cancel = true; // prevent the process from terminating.
    cts.Cancel();
};

//Run_Consume(configs, cts.Token);
Run_ManualAssign(configs, cts.Token);

}
public static async void Run_ManualAssign(YamlMappingNode configs, CancellationToken cancellationToken)
{
var brokerList = configs.Where(k => k.Key.ToString() == "kfk_broker")?.FirstOrDefault().Value.ToString();
var topics = configs.Where(k => k.Key.ToString() == "input_kfk_topic")?.FirstOrDefault().Value.ToString();
var config = new ConsumerConfig
{
// the group.id property must be specified when creating a consumer, even
// if you do not intend to use any consumer group functionality.
GroupId = new Guid().ToString(),
BootstrapServers = brokerList,
// partition offsets can be committed to a group even by consumers not
// subscribed to the group. in this example, auto commit is disabled
// to prevent this from occurring.
EnableAutoCommit = true
};
using (var consumer =
    new ConsumerBuilder<Ignore, string>(config)
        .SetErrorHandler((_, e) => Console.WriteLine($"Error: {e.Reason}"))
        .Build())
{
    //consumer.Assign(topics.Select(topic => new TopicPartitionOffset(topic, 0, Offset.Beginning)).ToList());
    consumer.Assign(new TopicPartitionOffset(topics, 0, Offset.End));
    //var producer = new ProducerBuilder<Null, string>(config).Build();
    try
    {
        while (true)
        {
            try
            {
                var consumeResult = consumer.Consume(cancellationToken);
                /// Note: End of partition notification has not been enabled, so
                /// it is guaranteed that the ConsumeResult instance corresponds
                /// to a Message, and not a PartitionEOF event.

                //filter message
                var result = ReadMessage(configs, consumeResult.Message.Value);
                //send to kafka topic
                await Run_ProducerAsync(configs, result);
            }
            catch (ConsumeException e)
            {

                Console.WriteLine($"Consume error: {e.Error.Reason}");
            }
        }
    }
    catch (OperationCanceledException)
    {
        Console.WriteLine("Closing consumer.");
        consumer.Close();
    }
}

}
public static async Task Run_ProducerAsync(YamlMappingNode configs, string message)
{
var brokerList = configs.Where(k => k.Key.ToString() == "kfk_broker")?.FirstOrDefault().Value.ToString();
var topicName = configs.Where(k => k.Key.ToString() == "target_kafka_topic")?.FirstOrDefault().Value.ToString();
var config = new ProducerConfig
{
BootstrapServers = brokerList
};
using (var producer = new ProducerBuilder<string, string>(config).Build())
{
try
{
/// Note: Awaiting the asynchronous produce request below prevents flow of execution
/// from proceeding until the acknowledgement from the broker is received (at the
/// expense of low throughput).
var deliveryReport = await producer.ProduceAsync(topicName, new Message<string, string> { Key= DateTime.UtcNow.ToString(), Value = message });
producer.Flush(TimeSpan.FromSeconds(10));
Console.WriteLine($"delivered to: {deliveryReport.TopicPartitionOffset}");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
//Console.WriteLine($"failed to deliver message: {e.Message} [{e.Error.Code}]");
}
}
}`
Checklist
Please provide the following information:

[ ] A complete (i.e. we can run it), minimal program demonstrating the problem. No need to supply a project file.
[1.4.0 ] Confluent.Kafka nuget version.
[ ] Apache Kafka version.
[ ] Client configuration.
[Docker for linux ] Operating system.
[ ] Provide logs (with "debug" : "..." as necessary in configuration).
[ ] Provide broker log excerpts.
[ ] Critical issue.

You could maybe set Debug to "all" in the producer config and capture the output so we can see what the producer is doing, that might give some clues. Also, make sure calling Confluent.Kafka.Library.VersionString gives you the version you're expecting (1.4). Also maybe check if you see the same problem with v1.3.

You could maybe set Debug to "all" in the producer config and capture the output so we can see what the producer is doing, that might give some clues. Also, make sure calling Confluent.Kafka.Library.VersionString gives you the version you're expecting (1.4). Also maybe check if you see the same problem with v1.3.

Thanks for your help. I called 'Confluent.Kafka.Library.VersionString' and the version is 1.4.0. And I'm using .net core 2.1, actually I also tried version 1.3.0 of this package, the same problem came to me.

I‘m using image image: mcr.microsoft.com/dotnet/core/sdk:2.1. Yes I will take your advise not create producer instance every time, thanks for that. Now I would try to use other .net core image and I will let you know if that helps.

I'm quite sure I've used that docker image myself without issue. what is the host OS? linux or windows? i'm using mcr.microsoft.com/dotnet/core/sdk:3.1 right now (host OS ubuntu) without issue.
other than that, can you try the Producer example project unchanged (except you'll need to change the Confluent.Kafka package reference to use nuget) in order to narrow it down.

I'm quite sure I've used that docker image myself without issue. what is the host OS? linux or windows? i'm using mcr.microsoft.com/dotnet/core/sdk:3.1 right now (host OS ubuntu) without issue.
other than that, can you try the Producer example project unchanged (except you'll need to change the Confluent.Kafka package reference to use nuget) in order to narrow it down.

I believe my host OS is linux, but I'm actually using VS2019 for debugging now, I added docker for linux support to this project and run with docker.

ok, the host OS is windows (docker is running linux). is the problem occurring when you run both inside and outside of docker?

ok, the host OS is windows (docker is running linux). is the problem occurring when you run both inside and outside of docker?

I just test directly call producer in main program like Producer example, still the same problem.
And yes, inside and outside of a docker, I got same problem

ok, the host OS is windows (docker is running linux). is the problem occurring when you run both inside and outside of docker?

Sorry, I tried again, I just create producer once outside of Run_ProducerAsync function and call it direrctly in main program like this await Run_ProducerAsync(configs, "test"); it works. So there's must something wrong happened when I call it in my Run_ManualAssign method, is that possible that my message is too long?

yes, by default it's 1mb. MessageMaxBytes.
I just noticed that in your original report the exception type was ProduceException<string, string> e) but you edited it to Exception. The first won't catch anything because the producer type is Null,string, but I guess you worked that out.

yes, by default it's 1mb. MessageMaxBytes.
I just noticed that in your original report the exception type was ProduceException<string, string> e) but you edited it to Exception. The first won't catch anything because the producer type is Null,string, but I guess you worked that out.

Yes, my code now is like this:
`public static YamlMappingNode configs;
public static IProducer<string, string> producer;
public static void Main(string[] args)
{
using (var reader = new StreamReader(Path.Combine(Directory.GetCurrentDirectory(), ".gitlab-ci.yml")))
{
var yaml = new YamlStream();
yaml.Load(reader);
    //find variables
    configs = (YamlMappingNode)yaml.Documents[0].RootNode;
    configs = (YamlMappingNode)configs.Children.Where(k => k.Key.ToString() == "variables")?.FirstOrDefault().Value;
}

//Console.WriteLine($"Started consumer, Ctrl-C to stop consuming");

var brokerList = configs.Where(k => k.Key.ToString() == "kfk_broker")?.FirstOrDefault().Value.ToString();

var config = new ProducerConfig
{
    BootstrapServers = brokerList,
    Debug = "all",
};

producer = new ProducerBuilder<string, string>(config).Build();

CancellationTokenSource cts = new CancellationTokenSource();
Console.CancelKeyPress += (_, e) =>
{
    e.Cancel = true; // prevent the process from terminating.
    cts.Cancel();
};

Run_ManualAssign(configs, cts.Token);

//await Run_ProducerAsync(configs, "test");

}
#region Run_ManualAssign
///
///     In this example
///         - consumer group functionality (i.e. .Subscribe + offset commits) is not used.
///         - the consumer is manually assigned to a partition and always starts consumption
///           from a specific offset (0).
///
public static async void Run_ManualAssign(YamlMappingNode configs, CancellationToken cancellationToken)
{
var brokerList = configs.Where(k => k.Key.ToString() == "kfk_broker")?.FirstOrDefault().Value.ToString();
var topics = configs.Where(k => k.Key.ToString() == "input_kfk_topic")?.FirstOrDefault().Value.ToString();
var config = new ConsumerConfig
{
// the group.id property must be specified when creating a consumer, even
// if you do not intend to use any consumer group functionality.
GroupId = new Guid().ToString(),
BootstrapServers = brokerList,
// partition offsets can be committed to a group even by consumers not
// subscribed to the group. in this example, auto commit is disabled
// to prevent this from occurring.
EnableAutoCommit = true
};
using (var consumer =
    new ConsumerBuilder<Ignore, string>(config)
        .SetErrorHandler((_, e) => Console.WriteLine($"Error: {e.Reason}"))
        .Build())
{
    //consumer.Assign(topics.Select(topic => new TopicPartitionOffset(topic, 0, Offset.Beginning)).ToList());
    consumer.Assign(new TopicPartitionOffset(topics, 0, Offset.End));
    //var producer = new ProducerBuilder<Null, string>(config).Build();
    try
    {
        while (true)
        {
            try
            {
                var consumeResult = consumer.Consume(cancellationToken);
                /// Note: End of partition notification has not been enabled, so
                /// it is guaranteed that the ConsumeResult instance corresponds
                /// to a Message, and not a PartitionEOF event.

                //filter message
                var result = ReadMessage(configs, consumeResult.Message.Value);
                Console.WriteLine(result);
                //send to kafka topic
                await Run_ProducerAsync(configs, result);
            }
            catch (ConsumeException e)
            {
                Console.WriteLine($"Consume error: {e.Error.Reason}");
            }
        }
    }
    catch (OperationCanceledException)
    {
        Console.WriteLine("Closing consumer.");
        consumer.Close();
        producer.Dispose();
    }
}

}
#endregion Run_ManualAssign
#region Run_Producer
public static async Task Run_ProducerAsync(YamlMappingNode configs, string message)
{
var topicName = configs.Where(k => k.Key.ToString() == "target_kafka_topic")?.FirstOrDefault().Value.ToString();
try
{
/// Note: Awaiting the asynchronous produce request below prevents flow of execution
/// from proceeding until the acknowledgement from the broker is received (at the
/// expense of low throughput).
var deliveryReport = await producer.ProduceAsync(topicName, new Message<string, string> { Key = DateTime.UtcNow.ToString(), Value = message });
producer.Flush(TimeSpan.FromSeconds(10));
Console.WriteLine($"delivered to: {deliveryReport.TopicPartitionOffset}");
}
catch (Exception e)
{
Console.WriteLine(e.Message);
producer.Dispose();
//Console.WriteLine($"failed to deliver message: {e.Message} [{e.Error.Code}]");
}
}
#endregion Run_Producer
`
I didn't attach the code of function ReadMessage here, anyway you can replace the code var result = ReadMessage(configs, consumeResult.Message.Value); to var result = "test" and try it, and the same problem will come.

I've solve this issue by move the code await Run_ProducerAsync(configs, result); from Run_ManualAssign to function ReadMessage, don't know why. I checked the producer debug log, and found everytime it stops when creating new topic for producer, so I guess maybe it somehow conflicted with the topic for consumer.
Emmm, I'm talking like in dream...Don't understand why.


docs: use mermaid diagram in introduction

Replace the sequence diagram image in introduction with mermaid diagram

Codecov Report

Merging #869 (2efebfd) into main (c8f7c69) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #869   +/-   ##
=======================================
  Coverage   51.76%   51.76%
=======================================
  Files          36       36
  Lines        2376     2376
=======================================
  Hits         1230     1230
  Misses       1100     1100
  Partials       46       46

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


[REST] API client is sending in the block ids in the incorrect format

Instructions
The Swagger Generated Go Client is sending the block ids in an incorrect format. It does a fmt.Sprintf("%v", id) for the id slice which causes the ids to be written out as [id1 id2 id3] etc. given how %v works for []string.
Current format

/v1/blocks/[id1 id1 id3...]

Correct format:

/v1/blocks/id1,id2,id3...

Problem
<what is the problem you've encountered?>
Steps to Reproduce
<share any logs/screenshots or steps to replicate>
Acceptance Criteria

Context
<what are you currently working on that this is blocking?>

@vishalchangrani is that true for the JS generated client as well? I think we should focus on JS client and anyway we should support correct formatted IDs and then also add this parser exception, not just support the wrong one: https://github.com/onflow/flow-go/blob/rest_api_feature_branch/engine/access/rest/converter.go#L46
So IMHO we need to add support for the correct format and then special case handling of this format.


Enhancement requested in Find (ctrl+F) dialog

please consider supporting incremental find in active window, as user types in dialog

dialog should have 2 action buttons: find next, find previous

Some options also: find in all open windows, find in all project files (should open file)

Thanks.

For next and previous, press enter and shift-enter in the search entry. I guess its pretty common nowadays to leave out the next and previous buttons. Not sure about the incremental find though. Think its nice that the window does not scroll before one press enter, especially when you have the highlighting as you type.
Regarding the last item, find in all project files etc, I guess you could use Project->Run Command here instead. juCi++ does not try to be an OS, or at least such functions will not be prioritised at the moment. However, feel free to make a pull request for such items.

Having Enter/Shift+Enter is fine, but by itself is terrible from UX standpoint: no discoverability.
However, buttons with text "Find previous"/"Find next" would be way too big: my suggestion: button with up-arrrow for "Find previous" and a button with down-arrow for "Find next".

[^][v]

I hate Enter because it is also a character keystroke - so have to be mindful of focus while the dialog is up. I see F3 & Ctrl+F as pretty much standard for find command.
Visual Studio, Codelite, Code:Blocks, Eclipse, even Firefox all support find as you type.
Find in project is important for one simple reason: visually verifying that refactoring worked as expected.
And please, please provide a simple option to reload last opened project upon startup :)
Thanks.

We do not try to copy other IDE's, and scrolling the buffer when you write in the search entry make you loose track of where you were. I guess we could add arrows at the search box, but we try not to force use of the mouse when working on a buffer.
I guess I can add ~/.juci/last_session.json though, to open last session folder and tabs:)

@amit-jain-SBG See the commit above.

@amit-jain-SBG See also #171

👍😁
On Fri, Mar 25, 2016 at 3:29 PM, Ole Christian Eidheim <
<EMAIL_ADDRESS>wrote:

@amit-jain-SBG https://github.com/amit-jain-SBG See also #171
https://github.com/cppit/jucipp/pull/171
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/cppit/jucipp/issues/170#issuecomment-201333309

I have given the next-previous buttons some more though, and the problem is that if we add them, we should add replace next and replace previous buttons as well. So I think its best to leave them out, and thus keep the number of buttons in the search box to a minimum.
The focus is set automatically, so using enter and shift-enter should not be a problem. Just hit escape after you are done with the search to get back to the buffer.
Also the search updates when you switch tabs while having the search entry up, and that is one way to verify the result of a refactor.

I see no reason why "Replace previous"/"Replace next" should exist: they're equivalent to running "Find previous"/"Find next" and doing replacing in-place. That would make one of these buttons redundant:

[^][R][v]

The most important feature of these buttons would be having a on-hover tooltip, something like "Find Next (press Enter on a Find textbox)" or "Find previous (press Shift+Enter on a Find textbox)" - that way you could introduce the feature to the user. (I don't know any program that does "Find previous" on Shift+Enter)
Speaking of Find dialog - some info about dialect of regex (it helps that we have so many) and style of backreferences (\1, $1, ...) would be useful. Not necessarily in the program, but at least in documentation.

I agree that [^][R][v] with tooltips might work. You can probably find some UTF-8 characters for the up/down arrows. Feel free to make a pull request, I have some other work I need to prioritise before this. Adding the help wanted label:)


How to set imagePullSecrets in CRD EtcdCluster?

I put the etcd image in a private registry, so i need authentication in order to pull it down.
May I ask where I should set imagePullSecrets field in EtcdCluster yaml?
Thanks for answering!

just fyi, I'm struggling with this as well


The BuildInvocations model should not list any task selectors for included builds

Gradle recently enabled users to execute tasks in composite builds. However tasks selectors cannot be used. In other words it is possible to run :included-build:subproject:taskA but not included-build:subproject:taskA (nor :included-build:taskA or taskA. The BuildInvocations Tooling API model, however, still lists tasks selectors for the included builds.

Not being able to use task selectors with included builds is indeed very annoying. To me, the most natural behavior of a composite build would be to simply "forward" all task invocations done via selectors to all included builds.
That is, in a setup like
root project (composite build)
  |
  + independent projectA (included build; has a task called "assemble")
  |
  + independent projectB (included build; has a task called "assemble")

running ./gradlew assemble on the root project should by default call :projectA:assemble and :projectB:assemble.


JavaScript language support reports assignment to function as error instead of warning

This is a holdover from TS language service errors.

Closed with the adoption of Salsa (https://code.visualstudio.com/Updates#_languages-javascript).


pass gitattributes patterns (mostly) unchanged

Attempt to fix #870. The git lfs track command currently checks given patterns against the current working directory, preventing users from tracking files outside the repository. As pointed out in #870, this is actually incorrect. Via gitignore docs:

A leading slash matches the beginning of the pathname. For example, /{asterisk}.c matches cat-file.c but not mozilla-sha1/sha1.c.

This removes that check, and the related tests.

:+1:


Roll engine 72986c39ea36..ffdddb07ef19 (12 commits)

https://github.com/flutter/engine/compare/72986c39ea36...ffdddb07ef19
git log 72986c39ea3669ef26d4d7d7cd0c44f513fcd117..ffdddb07ef19f71e6bedecae5cefdf7121e89df6 --no-merges --oneline
ffdddb07e Roll src/third_party/skia 6d60534e95d8..76e626d9bb55 (1 commits) (flutter/engine#8544)
5ac728eb6 Roll src/third_party/skia 4d657d5e894a..6d60534e95d8 (3 commits) (flutter/engine#8543)
ee462ff68 Roll src/third_party/skia 99d792276740..4d657d5e894a (1 commits) (flutter/engine#8542)
18816c50f Roll src/third_party/skia 42280f8961fa..99d792276740 (8 commits) (flutter/engine#8539)
892591da8 Android Embedding PR28: Report app is active to Flutter in FlutterFragment.onResume() instead of onPostResume() forwarded from Activity. (flutter/engine#8536)
330c6c168 Use code cache dir for engine cache on API >= 21 (#14704). (flutter/engine#8534)
c10ae2be2 Add an option to build the GLFW shell on macOS (flutter/engine#8531)
29aa5fca0 Roll src/third_party/skia b5c685991faa..42280f8961fa (32 commits) (flutter/engine#8535)
0a2869e5c Added support for authentication codes for the VM service (flutter/engine#8527)
36d2135ad Redo a fix for cull rect calculation on TransformLayers with a perspective transform (flutter/engine#8528)
0b36d3e2f Change Rect internal representation from Float32List to Float64List (flutter/engine#8524)
b1ae0ccb7 Roll src/third_party/skia 10bf7020aa15..b5c685991faa (3 commits) (flutter/engine#8526)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff (jsimmons@google.com), and stop
the roller if necessary.

Trybots failed. These were the failed builds: https://cirrus-ci.com/task/5782547379257344

Commit queue failed; closing this roll.


Error while setting up platform qbittorrent - qBittorrent 4.2.0

Home Assistant release with the issue:
0.103.0
Last working Home Assistant release (if known):
Operating environment (Hass.io/Docker/Windows/etc.):
Official Docker image
Integration:
https://www.home-assistant.io/integrations/qbittorrent/
Description of problem:
qBittorent integration doesn't work since qBittorrent release 4.2.0.
Problem-relevant configuration.yaml entries and (fill out even if it seems unimportant):
- platform: qbittorrent
  url: 'http://<IP_ADDRESS>:9091'
  username: !secret torrent_username
  password: !secret torrent_password

Traceback (if applicable):
Error while setting up platform qbittorrent
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 150, in _async_setup_platform
    await asyncio.wait_for(asyncio.shield(task), SLOW_SETUP_MAX_WAIT)
  File "/usr/local/lib/python3.7/asyncio/tasks.py", line 442, in wait_for
    return fut.result()
  File "/usr/local/lib/python3.7/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/src/homeassistant/homeassistant/components/qbittorrent/sensor.py", line 48, in setup_platform
    client = Client(config[CONF_URL])
  File "/usr/local/lib/python3.7/site-packages/qbittorrent/client.py", line 30, in __init__
    """)
RuntimeError:
                This wrapper only supports qBittorrent applications
                 with version higher than 3.1.x.
                 Please use the latest qBittorrent release.

Additional information:
https://github.com/qbittorrent/qBittorrent/releases/tag/release-4.2.0

@MateEke this is an issue with used package python-qBittorrent and there is even a PR to add this support. Therefore, please close this issue and comment/support on the issue or PR. Thank you :)

The mentioned PR has been merged, @MateEke could you test the component with the new version of python-qBittorrent? Thanks in advance :)

Hey folks 👋, Support for qBittorrent 4.1+ is now available in python-qBittorrent 0.4.1. Thanks to @Shaance for this.
https://pypi.org/project/python-qbittorrent/0.4.1/

@MateEke I have created an PR to update to the latest version, could you please test it locally for me? Thank you very much :)

Any idea when this is pushed to master?

@Tuumke this will be released in 0.104 on 15 January.


Direct API

We would like to use passwordless for authentication, but have a need to create and invalidate tokens directly from the node process that also runs the express server. In other words we would like to call the api without using the express middleware.

Besides the user being able to enter their email address and receiving a login link with a token, we would like to be able as an administrator to create the url for the user and send it to the email (without user intervention).
There is a function passwordless.requestToken but it should be used as express middleware.
I am also interested in the security implications of generating the links ahead of time for the user, as the creation of the token doesnt happen in real time (when the user actually has the intention to login).

Subsequently the administrator should be able to logout the user and invalidate the tokens. There is a function passwordless.logout, but as it looks like it only works through the express middleware.
@florianheinemann : I wouldnt mind making a PR for these features, but I wanted to just get your feedback on it before I start. Just so I dont create anything that cant be used or wont be merged.
thank you for any feedback

Hey!
If I understand you correctly you want to use the library implementation (incl. express) but also have a second way outside of express to login / log out triggered by an admin. Is that correct? Am I also correct to assume that for the "regular" use case it's a normal website rather than e.g. a REST interface? If otherwise let me know as I might have some further thoughts in those cases
With regards to your questions:

if you really want to run it entirely outside express this will be the right way of doing it: https://github.com/florianheinemann/passwordless/issues/66
depending on your setup (and if you have express anyway set up for your regular use cases) it might be even easier to call requestToken as middleware on a special URL for admins? This could even be done without running a browser but by simply making a HTTPS call
in terms of security I see no issues. However think about where those clear text tokens will be stored before they are used! They are password equivalents! In passwordless' database they are fully hashed and salted and hence secure. Where will you store them and how long will they remain in clear? How many of those will be in one place in case you are breached? Those are questions you might want to reason about. Drop me a note if you want to further discuss

do you want to invalidate the token or log the user out of the service? In the first case just call the appropriate API of the token store directly (invalidateUser). In the second case this should help: https://github.com/florianheinemann/passwordless/issues/51

Hope that helps!
Cheers

Separating out the token creation functionality from the request cycle stuff is useful and a good idea for lots of reasons. It makes the code easier to work with in general and it makes this library more testable. A problem I'm having currently is testing my api, and being able to create tokens in test setup functions. The way the library is set up currently makes it very hard to test.
This would be pretty easy to accomplish in a PR. It should just be a matter of exporting the token creation logic as it's own function.


Update API for Swift 3 Release

edjiang@ubuntu:~$ swiftenv install 3.0
We don't have build instructions for 3.0.

I haven't tested it but the correct tag is actually swift-3.0-RELEASE.

Swiftenv usually uses the raw numbers for actual release builds.
But anyways:
edjiang@ubuntu:~$ swiftenv install swift-3.0-RELEASE
We don't have build instructions for 3.0-RELEASE.

Fair enough :)

edjiang@ubuntu:~$ swiftenv install --list
2.2-dev
2.2
2.2.1
3.0-dev

Swiftenv seems to pull the versions from Kyle's API:
https://swiftenv-api.fuller.li/versions
{
  "_embedded": {
    "3.0-GM-CANDIDATE": {
      "_links": {
        "self": {
          "href": "/versions/3.0-GM-CANDIDATE"
        }
      }
    },
    "2.2": {
      "_links": {
        "self": {
          "href": "/versions/2.2"
        }
      }
    },
    "3.0-PREVIEW-1": {
      "_links": {
        "self": {
          "href": "/versions/3.0-PREVIEW-1"
        }
      }
    },
    "3.0-PREVIEW-5": {
      "_links": {
        "self": {
          "href": "/versions/3.0-PREVIEW-5"
        }
      }
    },
    "3.0-PREVIEW-3": {
      "_links": {
        "self": {
          "href": "/versions/3.0-PREVIEW-3"
        }
      }
    },
    "3.0-PREVIEW-2": {
      "_links": {
        "self": {
          "href": "/versions/3.0-PREVIEW-2"
        }
      }
    },
    "3.0-PREVIEW-6": {
      "_links": {
        "self": {
          "href": "/versions/3.0-PREVIEW-6"
        }
      }
    },
    "3.0-PREVIEW-4": {
      "_links": {
        "self": {
          "href": "/versions/3.0-PREVIEW-4"
        }
      }
    },
    "2.2.1": {
      "_links": {
        "self": {
          "href": "/versions/2.2.1"
        }
      }
    }
  },
  "_links": {
    "self": {
      "href": "/versions"
    }
  }
}

Yeah! Just found that out while trying to send a patch. This call returns 404 and then everything fails:
https://swiftenv-api.fuller.li/versions/3.0/binaries/ubuntu14.04
What's the rationale for this? Why can't we try swift.org directly?
I'll try to send a patch to https://github.com/kylef/swiftenv-api

Created a PR here:
https://github.com/kylef/swiftenv-api/pull/6
I imagine this is the only thing needed? @kylef  ☺

https://github.com/kylef/swiftenv-api/pull/6 is merged now. 😉

Does it take time to redeploy?
edjiang@ubuntu:~$ swiftenv install --list
2.2-dev
2.2
2.2.1
3.0-dev
edjiang@ubuntu:~$ swiftenv install 3.0
We don't have build instructions for 3.0.

Are you using Ubuntu or macOS? If the latter, Swift 3.0 is a part of Xcode 8 and there is no Swift installer package for the release.

Looks like it's working on ubuntu 14.04, but not 15.10 for me

If you are on a platform where there are binary versions of Swift, swiftenv will install the Apple provided binary images:
$ swiftenv install 3.0
Downloading https://swift.org/builds/swift-3.0-release/ubuntu1510/swift-3.0-RELEASE/swift-3.0-RELEASE-ubuntu15.10.tar.gz
3.0 has been installed.

There are only binaries for:

ubuntu1510
ubuntu1404

If you are running macOS, you will need to install Xcode. Apple has not provided a 3.0 binary toolchain for macOS like they did for the 3.0 GM.
If there isn't a binary image, swiftenv will then use the profiles included in swiftenv to install from source, if a profile for the version exists.
swiftenv does not have a 3.0 build profile. I'm waiting for all of the source repositories to be tagged with 3.0 before this profile can be created.
Repositories missing swift-3.0-RELEASE tags:

[x] https://github.com/apple/swift/releases/tag/swift-3.0-RELEASE
[ ] https://github.com/apple/swift-llvm/releases
[ ] https://github.com/apple/swift-package-manager/releases
[ ] https://github.com/apple/swift-llbuild/releases
[ ] https://github.com/apple/swift-corelibs-xctest/releases
[ ] https://github.com/apple/swift-corelibs-libdispatch/releases
[ ] https://github.com/apple/swift-corelibs-foundation/releases
[ ] https://github.com/apple/swift-cmark/releases
[x] https://github.com/apple/swift-lldb/releases/tag/swift-3.0-RELEASE
[ ] https://github.com/apple/swift-clang/releases

At the moment, you can install the 3.0-dev profile in swiftenv (swiftenv install 3.0-dev) to build 3.0 from source using the 3.0/stable branches.

What's the rationale for this? Why can't we try swift.org directly?

@paulofaria swiftenv used to hit swift.org directly. But time after time the Swift team changed the URI format for the Swift versions thus breaking swiftenv. These URL formats were too unstable to use in a released command line tool (https://github.com/kylef/swiftenv/issues/10). I don't want to have to handle additional cases and make a release every time Apple decides to slightly change the URI format. Especially when the new URI formats only apply to versions going forward and the old versions still retain the old format, this means we eventually build ranges of versions using one URI format.
Having an API which has all of these URLs (version controlled with audit logs) greatly simplifies swiftenv. Currently adding versions is done manually so we can review the URLs are correct before promoting to production. Now this has stabilised I plan to automate updating the versions in the swiftenv API so they will become available much sooner after a release of Swift automatically.

I understand that, but it's not working on 15.10 for me.
Try this in Docker:
Ubuntu 15.10:
root@ubuntu:/home/edjiang/throwaway-code/DockerSwift# cat Dockerfile
FROM ubuntu:15.10
RUN apt-get update
RUN apt-get -qy install clang libicu-dev build-essential git libcurl4-openssl-dev libxml2 curl
RUN git clone https://github.com/kylef/swiftenv.git /usr/local/swiftenv
ENV SWIFTENV_ROOT /usr/local/swiftenv
ENV PATH $SWIFTENV_ROOT/bin:$SWIFTENV_ROOT/shims:$PATH
RUN swiftenv install 3.0
root@ubuntu:/home/edjiang/throwaway-code/DockerSwift# docker build .
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM ubuntu:15.10
 ---> 9b9cb95443b5
Step 2 : RUN apt-get update
 ---> Using cache
 ---> cf74997a343c
Step 3 : RUN apt-get -qy install clang libicu-dev build-essential git libcurl4-openssl-dev libxml2 curl
 ---> Using cache
 ---> e60478cea24d
Step 4 : RUN git clone https://github.com/kylef/swiftenv.git /usr/local/swiftenv
 ---> Using cache
 ---> 0a2f252f3962
Step 5 : ENV SWIFTENV_ROOT /usr/local/swiftenv
 ---> Using cache
 ---> c2f201efb198
Step 6 : ENV PATH $SWIFTENV_ROOT/bin:$SWIFTENV_ROOT/shims:$PATH
 ---> Using cache
 ---> d70468b34575
Step 7 : RUN swiftenv install 3.0
 ---> Running in 954003953b04
We don't have build instructions for 3.0.
The command '/bin/sh -c swiftenv install 3.0' returned a non-zero code: 1

On 14.04:
root@ubuntu:/home/edjiang/throwaway-code/DockerSwift# cat Dockerfile
FROM ubuntu:14.04
RUN apt-get update
RUN apt-get -qy install clang libicu-dev build-essential git libcurl4-openssl-dev libxml2 curl
RUN git clone https://github.com/kylef/swiftenv.git /usr/local/swiftenv
ENV SWIFTENV_ROOT /usr/local/swiftenv
ENV PATH $SWIFTENV_ROOT/bin:$SWIFTENV_ROOT/shims:$PATH
RUN swiftenv install 3.0
root@ubuntu:/home/edjiang/throwaway-code/DockerSwift# docker build .
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM ubuntu:14.04
 ---> 4a725d3b3b1c
Step 2 : RUN apt-get update
 ---> Using cache
 ---> eaccd91b3832
Step 3 : RUN apt-get -qy install clang libicu-dev build-essential git libcurl4-openssl-dev libxml2 curl
 ---> Using cache
 ---> 71cc50b104ab
Step 4 : RUN git clone https://github.com/kylef/swiftenv.git /usr/local/swiftenv
 ---> Using cache
 ---> a5db8c30a562
Step 5 : ENV SWIFTENV_ROOT /usr/local/swiftenv
 ---> Using cache
 ---> 5df9a22f9d6e
Step 6 : ENV PATH $SWIFTENV_ROOT/bin:$SWIFTENV_ROOT/shims:$PATH
 ---> Using cache
 ---> bdce1d75aa65
Step 7 : RUN swiftenv install 3.0
 ---> Running in 46a3eb244f79
Downloading https://swift.org/builds/swift-3.0-release/ubuntu1404/swift-3.0-RELEASE/swift-3.0-RELEASE-ubuntu14.04.tar.gz

If you are running macOS, you will need to install Xcode. Apple has not provided a 3.0 binary toolchain for macOS like they did for the 3.0 GM.

Looks like they added it? Made a pr kylef/swiftenv-api#8

@edjiang The Ubuntu 15.10 image doesn't include lsb_release which the 14.04 image had. lsb-release is the standard tool that can be used to detect the distro/distro version and is normally included on all Ubuntu installations. Swiftenv attempts to use lsb_release to figure out your platform, if it isn't there it cannot find the platform.
You can add apt-get install lsb-release to your Dockerfile to fix this problem.
swiftenv docker image
I'd like to mention there is a swiftenv Docker image which uses Ubuntu 15.10 and installs swiftenv on top. Check out https://hub.docker.com/r/kylef/swiftenv/ for more information.
FROM kylef/swiftenv
RUN swiftenv install 3.0

Gotcha. I was trying to show you how to reproduce with Docker, but when I added lsb-release to my Dockerfile, it now works =]
I guess I have a different problem, then. My main box is on 16.04 and usually could use Swiftenv to install, with the override environment variable:
UBUNTU_VERSION=15.10 swiftenv install 3.0
It has been working with all of the development snapshots, but unfortunately not the release version of Swift. Any idea why?
edjiang@ubuntu:~$ swiftenv install DEVELOPMENT-SNAPSHOT-2016-09-10-a
Apple does not provide binary releases for ubuntu16.04.

You may manually install Swift and place it into:
  /home/edjiang/.swiftenv/versions/DEVELOPMENT-SNAPSHOT-2016-09-10-a

Alternatively, you can force using a Ubuntu binaries by using the following:
  $ env UBUNTU_VERSION=ubuntu15.10 swiftenv install DEVELOPMENT-SNAPSHOT-2016-09-10-a

edjiang@ubuntu:~$ swiftenv install 3.0
We don't have build instructions for 3.0.

@kylef I think that lsb-release issue could be mentioned in the README. Would you like me to send a PR?

@edjiang Looks like adding --no-build option would work around the issue.


Sema: Fix bug where lazy properties could become stored sometimes

If synthesizeWitnessAccessorsForStorage() got called on a lazy
property before maybeAddAccessorsToVariable(), we would build
it as a stored property instead.
This count result in bogus diagnostics, assertions and bad runtime
behavior.
Fixes https://bugs.swift.org/browse/SR-1825.

@swift-ci Please smoke test

@swift-ci Please smoke test

@swift-ci Please smoke test

@swift-ci Please smoke test

@swift-ci Please smoke test


chore(main): release 0.2.0

:robot: I have created a release beep boop
0.2.0 (2024-04-09)
Features

Linkify things that look like links (c512128)

Bug Fixes

deps: update rust crate service_conventions to 0.0.13 (a7ed868)
deps: update rust crate service_conventions to 0.0.14 (5648123)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/philipcristiano/nostress/releases/tag/v0.2.0 :sunflower:


Add jwks field validation to avoid sidecar crash

Fix #33053
[X] Security
[X] Does not have any user-facing changes. This may include CLI changes, API changes, behavior changes, performance improvements, etc.

@kebe7jun: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
69db63bdd274d2678732f047268ea31a3f7427b6
link
/test lint_istio

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

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

Test name
Commit
Details
Rerun command

lint_istio
69db63bdd274d2678732f047268ea31a3f7427b6
link
/test lint_istio

gencheck_istio
69db63bdd274d2678732f047268ea31a3f7427b6
link
/test gencheck_istio

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

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

Test name
Commit
Details
Rerun command

gencheck_istio
69db63bdd274d2678732f047268ea31a3f7427b6
link
/test gencheck_istio

lint_istio
79ba5d9f21506f3453b8a88079689ad2f6997198
link
/test lint_istio

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

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

Test name
Commit
Details
Rerun command

lint_istio
79ba5d9f21506f3453b8a88079689ad2f6997198
link
/test lint_istio

gencheck_istio
79ba5d9f21506f3453b8a88079689ad2f6997198
link
/test gencheck_istio

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

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

Test name
Commit
Details
Rerun command

gencheck_istio
79ba5d9f21506f3453b8a88079689ad2f6997198
link
/test gencheck_istio

lint_istio
d6ac33a5200b044d74cdb91672307698ffe1e4a8
link
/test lint_istio

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

@kebe7jun: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
7dddefaef0197d9657745227bbc19f03151fbab6
link
/test unit-tests_istio

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

/test unit-tests_istio

@kebe7jun: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio
7dddefaef0197d9657745227bbc19f03151fbab6
link
/test integ-telemetry-k8s-tests_istio

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

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

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio
7dddefaef0197d9657745227bbc19f03151fbab6
link
/test integ-telemetry-k8s-tests_istio

integ-security-multicluster-tests_istio
7dddefaef0197d9657745227bbc19f03151fbab6
link
/test integ-security-multicluster-tests_istio

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

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

Test name
Commit
Details
Rerun command

integ-telemetry-k8s-tests_istio
7dddefaef0197d9657745227bbc19f03151fbab6
link
/test integ-telemetry-k8s-tests_istio

integ-security-multicluster-tests_istio
7dddefaef0197d9657745227bbc19f03151fbab6
link
/test integ-security-multicluster-tests_istio

integ-pilot-multicluster-tests_istio
7dddefaef0197d9657745227bbc19f03151fbab6
link
/test integ-pilot-multicluster-tests_istio

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

/retest

@yangminzhu would you please take a look here?

/cherry-pick release-1.10

@kebe7jun: new pull request created: #33684

In response to this:

/cherry-pick release-1.10

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


[FEATURE] Image format support

Describe the solution you'd like
Add support for the following formats:

[ ] AVIF

https://github.com/stumpapp/stump/pull/385

[ ] JPEG XL

Additional context
This mostly just involves implementing the ImageProcessor trait for each new format. I imagine the following libraries will be pulled in:

https://github.com/tirr-c/jxl-oxide
https://github.com/kornelski/cavif-rs

Please comment for any additional formats which should be supported if you feel I missed one

The image crate implements AVIF natively, so I have added AVIF support (it works for with my test zipped AVIF files at least) by simply adding to the image/generic.rs file
...
let format = match options.format {
    process::ImageFormat::Jpeg => Ok(ImageFormat::Jpeg),
    process::ImageFormat::Png => Ok(ImageFormat::Png),
    process::ImageFormat::Avif => Ok(ImageFormat::Avif),
...

along with adding the AVIF objects throughout the image folder. But no need for a specific ImageProcessor. Let me know if you would like me to branch and pull this change (along with tests and stuff). Big rust newbie, so sorry if I am missing something that makes this a bad idea.

Awesome! I didn't realize they added it in natively.

Let me know if you would like me to branch and pull this change (along with tests and stuff). Big rust newbie, so sorry if I am missing something that makes this a bad idea.

Yeah, I'd appreciate any time you have to put up a PR. Be sure to work off of the develop branch. As for tests, there were recently a few added to that file which you can reference. Ideally, we want to assert that we can:

Convert other supported formats to AVIF
Convert from AVIF to other supported formats

No worries if it is missing something, I can help you get it to the finish line 🙂
Also, I see a footnote in the image repo which might require a little investigation to see if the docker base images need any additional libs added or if they are baked in already:

* Requires the avif-native feature, uses the libdav1d C library.

@smldub FYI I had to revert those changes 😞 I think the path forward is to find a solution which doesn't require an external library to be hooked up, or at the very least statically link the library so people don't have a hard requirement to install it.
I appreciate your time and efforts nonetheless! If you still want to try and integrate avif support with the above in mind, I'm here to help

Sorry for breaking everything! Maybe a possibility is to build with conditional compilation?

Sorry for breaking everything!

No it's all good! It wasn't just you, but it's also part of the process and the very reason we have nightly and experimental builds in the first place 🙂

Maybe a possibility is to build with conditional compilation (along with statically linking)

I think the problem with this route is that it would create a situation where we'd have to release two separate binaries: one with an (e.g.) avif feature flag enabled and one without it. In an ideal world, I think we would be able to do something more like what is done for the PDFium library
I'd sacrifice being able to generate AVIF thumbnails if there was a pure-rust decoder, but IIRC there only seems to be an encoder

AVIF thumbnails if there was a pure-rust decoder

Sorry this is probably a stupid question, but if the only goal is to serve images to a web-browser, is it necessary to decode the image? When I first messed around with the image crate, just adding the avif format so that it could be loaded (without decoding) allowed me to see my files in the webapp.

if the only goal is to serve images to a web-browser, is it necessary to decode the image?

No, not for the file serving aspect. That's just reading the entire file and dumping it to the client.
You ask a good question though. Besides thumbnail generation, the only other functionality which I assumed would need a decoder would be grabbing the dimensions of the image during analysis. I don't know where in the header AVIF stores that information but we don't necessarily need a full decoder if we know the structure

You ask a good question though. Besides thumbnail generation, the only other functionality which I assumed would need a decoder would be grabbing the dimensions of the image during analysis. I don't know where in the header AVIF stores that information but we don't necessarily need a full decoder if we know the structure
Edit to add a reference to the code where this happens: https://github.com/stumpapp/stump/blob/main/core/src/filesystem/media/analyze_media_job/task_analyze_dimensions.rs#L55-L61

This is something I've thought about. Image analysis is pretty slow right now because it loads the whole page to get its dimensions. I think that could be avoided in the future if we just read the dimensions info from the image files. We should determine 1) if image can do this or if another crate (or custom solution) is needed, and 2) if there are any additional difficulties resulting from many images being compressed into archive-based comic formats.

This is something I've thought about. Image analysis is pretty slow right now because it loads the whole page to get its dimensions. I think that could be avoided in the future if we just read the dimensions info from the image files.

Yeah it's definitely a large use of resources just to grab X bytes from the header

We should determine 1) if image can do this or if another crate (or custom solution) is needed

https://crates.io/crates/imagesize 🥹

if there are any additional difficulties resulting from many images being compressed into archive-based comic formats.

I wouldn't expect there to be, we can read precise amounts of bytes for any (supported) archive file entry, unless you mean something else?

Might be an easy fix, so I'll see if I can implement it in the near term

Yeah if image doesn't have anything for us that library I linked seems like it would just be a drop in replacement using the blob_size function, along with some logic to read the first 16ish bytes.

if the only goal is to serve images to a web-browser, is it necessary to decode the image?

No, not for the file serving aspect. That's just reading the entire file and dumping it to the client.

So @smldub you're welcome to try and re-add the support for just serving AVIF files to the client if you'd like, but no worries if not! I'll try to get to it this weekend so you aren't stuck with AVIF images not being served

Some thoughts on Jpeg_XL, I don't think the format will be added to image for quite some time, so some options for a processor are

Use jxl-oxide for decoding, then plug that into image-rs as a bitmap for rescaling and reformatting. The images could be re-encoded using zune-jpegxl or you could just make thumbnails into a different format.
Use zune-image for both decoding, encoding, and scaling (uses jxl-oxide as a decoder). Zune-jpeg is currently how image-rs handles jpeg decoding, so there is code on how to convert from zune images into image-rs images, but that might not even be necessary as it supports many of the same formats (Supported zune-image formats).

Let me know if you have any thoughts (I am leaning towards 1), I will probably mess around with this issue for the next little bit!

I'll try to give that linked issue a read over the weekend, looks like a lot of good context in there
Wrt the two options, I think it mostly depends on whether jxl will be a support format thumbnail generation. Assuming we can get the imagesize crate to function as expected, if a format isn't going to be supported for thumbnail generation we really don't need an encoder AFAIK. However, I did notice that all of the formats supported by zune-image are feature flagged, so we could just pull in the jxl (or whatever it might be named) feature to have encoding/decoding in one place.
I don't think I really have a preference, whatever is the path of least resistance is likely what I'd say to go for. This format doesn't require any external libs, so we should be good either way 😅

Was just shown this project, looks neat and I for sure plan on trying it soon!
AVIF support in image-rs is limited to YUV 420,422,444 decode,  as for encoding it uses rav1e which is quite slow, but at least it's native rust, these two issues might be the cause of some of the issues you had run into. Rav1d is a rust native decoder which is very much a WIP, but will allow for native rust decoding without the need for any external libraries, and should hopefully be wired up not too far into the future. Will not solve the yuv issues. Grayscale (YUV400) 10bit+ wont be magically fixed by this.
as for JXL, if you are doing encoding within rust, take note that zune-jxl's encoder is fairly basic, I'm not sure using it for encoding a thumbnail is going to make a lot of sense. zune-image works great with jxl decoding, and decoding in general, I found it marginally faster then image-rs, using jxl-oxide directly is still the fastest I find however I haven't checked for a bit. I personally store all my comics in jxl so it would be nice to have support for that.

Was just shown this project, looks neat and I for sure plan on trying it soon!

Nice! I hope you wind up enjoying it. Do be weary of some of the recent bugs and some rough edges, and feel free to report any issues you run into.

AVIF support in image-rs is limited to YUV 420,422,444 decode, as for encoding it uses rav1e which is quite slow, but at least it's native rust, these two issues might be the cause of some of the issues you had run into. Rav1d is a rust native decoder which is very much a WIP, but will allow for native rust decoding without the need for any external libraries, and should hopefully be wired up not too far into the future. Will not solve the yuv issues. Grayscale (YUV400) 10bit+ wont be magically fixed by this.

I really appreciate the context here. I think the yuv issues are acceptable on paper, but it would be good to know how images converted from AVIF to any in the current supported format set for thumbnail generation would actually turn out. Otherwise, the only other use case for decoding would be during specific analysis tasks where the color space is not important (e.g. image dimensions).

as for JXL, if you are doing encoding within rust, take note that zune-jxl's encoder is fairly basic, I'm not sure using it for encoding a thumbnail is going to make a lot of sense. zune-image works great with jxl decoding, and decoding in general, I found it marginally faster then image-rs, using jxl-oxide directly is still the fastest I find however I haven't checked for a bit.

Again, I really appreciate the context here! I think much of the same applies here as with AVIF. I guess another thing to note is the linked crate above, imagesize, could be used to get the image dimensions without needing to decode the image. Still doesn't solve the issue of if you have a JXL/AVIF library and want to opt into generating thumbnails 😅

I personally store all my comics in jxl so it would be nice to have support for that.

Support for JXL file serving at the very least was merged just today, coincidentally. It would be in the latest nightly build, and will go out in 0.0.6 along with a few other bug fixes


Juno to Kilo upgrade: lxc-container can not mount /var/run/netns and losing all namespaces

Tracking upstream bug - https://bugs.launchpad.net/openstack-ansible/+bug/1487130

Does the neutron container work properly after the setup-openstack playbook is run? If so, then is this really an issue worth holding back for. While it is more ideal to have the upgrade run in a manner that's as online as possible, it's my understanding that the upgrades are done in a maintenance window and therefore down time is expected. As long as it works afterwards, this should be something we improve but it shouldn't hold back RPC11's release.

It works properly after a container restart. @Apsu was looking into this on Friday, we think it might have been some of the temporary cleanup playbooks in the upgrade script.

@odyssey4me Same quesitons were asked the day we experienced it. It has been deemed a release blocker for support.

In terms of the actual down time - users are told to expect short periods network interruption in the order of seconds while containers, rabbitmq, mariadb, and neutron itself restart. In our environment, though, the ping test to a neutron IP failed for 29 minutes.

Did the issue resolve itself after the 29 minutes or was it only resolved after the neutron server containers were restarted? Do all of the neutron servers and agents need to be restarted?

It solved itself over the course of the upgrade; those 29 minutes were basically going from the beginning of the script to the actual neutron upgrade steps.

I would imagine that this issue is being caused by the addition to the openstack-lxc template as found here: https://github.com/stackforge/os-ansible-deployment/blob/kilo/playbooks/roles/lxc_container_create/tasks/container_create.yml#L80
Would it be possible to review the neutron server lxc configs to see if the app aromor profile with has more than one entry. If so the last one in config is the only one loaded and I'd image that the change in the aa profile for the lxc container build process, which reiterates through all containers, is causing the issues and resolves itself when the neutron container becomes "unconfined" here: https://github.com/stackforge/os-ansible-deployment/blob/kilo/playbooks/os-neutron-install.yml#L27

related fix that I believe will solve this issue: https://review.openstack.org/216301

Thanks @cloudnull

Closing as fix went into upstream OSA prior to r11.0.0 release.


depend on  some many other libs

i want to use hyperdex on my project,but i find it depend on too much other libs,and it hard to install on my system.

Hi maishi,
You can try to install from source as described at http://hyperdex.org/download/
Firstly, you need to download and install all the prerequisites. Which problem you met?

Most of the libraries it depends on are in-house libraries that are separate because they are used in multiple projects.  Here's a script that will install everything we built; you'll likely need to install libglog-dev and libpopt-dev first:  https://github.com/rescrv/HyperDex/blob/master/doc/install/source-install.sh


Expose storage configs and metadata via SQL

Currently we rely on command line tool (risectl) to inspect storage configs and metadata. A more convenient and isolated way is to leverage SQL, to avoid the burden on building/copying risectl, setting up network connection, and sshing onto the box. We can create system tables under rw_catalog to display these information.
Configs:

[ ] Compaction Group Configs
[ ] Write Stall Limit
[ ] Vacuum/GC Configs

For configs, we can use the following schema to store the information:
Name           |  Type
--------------+--------------
 config_name   | Varchar
 config_value  | Varchar

Metadata:

[ ] Current/Checkpointed Hummock Version (i.e. MANIFEST)
[ ] Hummock Version Delta
[ ] Pinned Versions/Snapshots
[ ] Branched SST info

For metadata, we need to decide what the suitable schema is for each of them. We can start simple by using jsonb for metadata with nested data structure.

may I take this task, I can do this in my weekend and  weekday late night
For this task, basically we just do:

define the config table schema
get the config from meta server by rpc.
return the structed config data

In this case, I found two existing rpc relations:

risectl_list_compaction_group -> Compaction Group Configs
get_current_version -> Write Stall Limit

But I can't find a rpc to get [Vacuum/GC Configs]
can I define one by  myself?

Thank you for your comments. However, I'm sorry to inform you that this task was already assigned to me the previous day. Perhaps you could take a look at other tasks that are available.

may I take this task? I can do this in my weekend and weekday late night
For this task, basically we just do:

define the config table schema
get the config from meta server by rpc.
return the structed config data

In this case, I found two existing rpc relations:

risectl_list_compaction_group -> Compaction Group Configs
get_current_version -> Write Stall Limit

But I can't find a rpc to get [Vacuum/GC Configs] can I define one by myself?

Thank you for your comments. However, I'm sorry to inform you that this task was already assigned to me the previous day. Perhaps you could take a look at other tasks that are available.

@yufansong Any updates?


polish the tips in issue template

I reviewed the history of commits. I found that the Chinese tips are mainly for users in Mainland China. If not, I will revert the PR.
I do sth. as follows:

unify the characters to Simplified Chinese.
add some translations to improve readability.

Coverage increased (+0.009%) to 87.311% when pulling 84f2d7454f7893e3e106b43eea0381df8802cf33 on awxiaoxian2020:issue-template into 99e0e657bbe2faa7f2eab662a57e13e702b6e335 on mybatis:master.

Oh nice. Thank you @awxiaoxian2020 !
And thank you @Oliverwqcwrw for the review!


When the DRAG is turned on, How to set initial X and Y positions。

When the drag is turned on, How to set initial X and Y positions, it does not want to make it display in the middle
When I set top and left for drag:start and drag:move, I can't get drag and resize perfectly
Version
vue-final-modal: 3.4.4
vue: 3.2.3
OS
Mac
Reproduction Link

Steps to reproduce
What is Expected?
What is actually happening?

You can just override the initial style of .vfm__content to achieve this. For example:
.vfm__content {
  top: 10px;
  left: 10px;
}