Proposal: Improve the XAML styling system to target template attributes and states

Proposal: Improve the XAML styling system to target template attributes and states
Summary

Provide a simplier styling system within XAML that enables a user to customize animations, template properties and attributes, and visual states without the need to re-template or copy numerous resources to a dictionary.
Rationale

Styling or customizing XAML controls today, outside of properties on a control, is very dependent on the developer's knowledge of the control's template and our framework. Although having a deep knowledge of our system isn't a bad thing, it can lead to some unwanted workarounds when it comes to customization and branding our controls.
There are two major sticking points that developers can run into when customizing our controls:

Desire to change visuals during a state (colors, attributes, ContentPresenter properties, etc.)
Need to alter default template attributes (spacing, corner radius, fixed widths, etc.)

To do either of these the above customization, a developer would need to maintain ResourceDictionary(ies) with hundreds of resources (if changing colors and/or control properties), or take complete ownership of the control through re-templating (if changing attributes).
Having numerous resources to maintain during design changes is a lot of developer cost and overhead, while the re-templating option means a higher risk of breaking high contrast as well as tedious, file diff changes when we roll out new updates to our default control templates.
With so many ways to customize a control, it's almost impossible for us to enable a property for each permutation that a developer could need. Therefore, it would make more sense to simply improve our current styling system to enable more versatility.

Functional Requirements

#
Feature
Priority

1
Easily access control template properties, components and attributes within a style
Must

2
Customize controls based on the template markup, not through resource keys or APIs
Must

3
Gracefully fallback or throw exceptions when template attribute markup has changed
Must

4
Anything not specified in the (non-template) style will default to their generic.xaml definition(s)
Must

5
Can target any visual state within a style
Must

6
Animations can be added, removed, or changed within a style
Must

7
Does not remove or make obsolete today's method of styling, instead offering a lighter weight alternative
Must

8
Intellisense supports styling system
Should

Important Notes

Let's look at common styling scenarios and how we might be able to change the way we can style them.
Styling a Control Locally
Styling a control is simplified and it's easy to target the named parts within that control's template.
<RadioButton Content="RadioButton">
    <RadioButton.Style>
        <Style TargetType="RadioButton">
            <Setter Path="Background" Value="White"/>
            <Setter TargetName="CheckOuterEllipse" Property="Fill" Value="Green"/>
            <Setter TargetName="CheckOuterEllipse" Property="Width" Value="18"/>
       </Style>
   </RadioButton.Style>
</RadioButton>

Changing Properties on Visual States
When a developer wants properties to changed only within a state, they can target that state directly without needing to specify the entire VisalState tree/manager.
<RadioButton Content="RadioButton">
    <RadioButton.Style>
        <Style TargetType="RadioButton">
            <VisualState x:Name="PointerOver">
                <Setter Path="Background" Value="White"/>
            </VisualState>

            <Setter TargetName="CheckOuterEllipse" Property="Fill" Value="Green"/>
            <Setter TargetName="CheckOuterEllipse" Property="Width" Value="18"/>
        </Style>
    </RadioButton.Style>
</RadioButton>

Since the style defined above has no states for Pressed and Disabled, the button control in this case will use it's generic.xaml definitions for those states, and the PointerOver definition specified above for hover.
The more states defined in the style, the less is being defaulted to in generic.xaml.
Styles at a Page-Level

This is the same behavior today and I am calling it out as something we will maintain with this new styling system as well.

Just as you can define styles and templates at a page-level, this new styling system can also be defined there.
<Page.Resources>
    <Style TargetType="RadioButton">
        <Setter Path="Background" Value="White"/>
        <Setter TargetName="CheckOuterEllipse" Property="Fill" Value="Green"/>
        <Setter TargetName="CheckOuterEllipse" Property="Width" Value="18"/>
    </Style>
</Page.Resources>

Specifying Animations
Animations specified using the improved styling method.
<Style TargetType="Button">
    <VisualState x:Name="PointerOver">
        <Storyboard>
            <PointerUpThemeAnimation Storyboard.TargetName="ContentPresenter" />
        </Storyboard>
    </VisualState>

    <Setter Path="Background" Value="White"/>
    <Setter TargetName="ContentPresenter" Property="CornerRadius" Value="4"/>
</Style>

Styling in Code-Behind
This new styling method would also modify how we style controls from code-behind. Although similar to what can be done today, there would need to be a few changes to account for visual states and targeting template attributes.
//Create style and add a PointerOver state using a previously defined storyboard and setters
Style style = new Style(typeof(AppBarButton));
style.Setters.Add(new Setter(AppBarButton.ContentViewbox.Height, "14"));
style.VisualStates.Add(new VisualState("PointerOver")
    { Setters = mySetterBaseCollection, Storyboard = myStoryboard });

//Add that style to container (or page) resources
rootGrid.Resources.Add(typeof (AppBarButton), style);

Intellisense Support
Intellisense will also scan and pick up the named parts within a control's template and display them in a Setter's property option dropdown. This would remove the need to dig through generic.xaml and would greatly increase the speed of app development and productivity.

Using this Path attribute will also allow "dotting" into the named element within that template and accessing it's properties directly.

Open Questions/Issues

In this model, when we do change our default template attributes, the styles relying on those x:Key names will no longer be valid.
Even if we do fallback gracefully and intellisense detects which attributes don't exist anymore, it could still be a bit tedious for the developer to update those attribute names individually.
This includes a major change to our VisualStates and how they're architected. VisualStates as they are today were built to help immensely with VisualStudio's tooling features, something we would not want to regress if we were to modify how and where VisualStates can be defined.
How would this work or use XAML direct?

But how do you distinguish between overriding the style and only having a couple of properties vs. changing a few properties from the base style?

I'm not sure I follow. Can you give an example?
What's outlined here isn't a fundamental change to how styles layer in XAML. More it's a suggestion for how to target properties that aren't on the control class itself (by allowing you to target known named parts of the template and the sub-properties on them).

@kikisaints This looks great, and would go even further than "lightweight styling" did to reduce the need for re-templating. My only comment so far is that I would like to be able to replace things like PointerDownThemeAnimation with a Windows.UI.Composition-based animation.
I'll have to digest this a little before I can comment more.

@kikisaints Nice idea. The first two snippets in your proposal confused me a bit, as I guess some elements are missing? :-)
First snippet
In the first snippet the element <Style TargetType="RadioButton"> is missing.
Should be
<RadioButton Content="RadioButton">
    <RadioButton.Style>
      <Style TargetType="RadioButton">
        <Setter Path="Background" Value="White"/>
        <Setter Path="CheckOuterEllipse.Fill" Value="Green"/>
        <Setter Path="CheckOuterEllipse.Width" Value="18"/>
      </Style>
   </RadioButton.Style>
</RadioButton>

instead of
<RadioButton Content="RadioButton">
    <RadioButton.Style>
        <Setter Path="Background" Value="White"/>
        <Setter Path="CheckOuterEllipse.Fill" Value="Green"/>
        <Setter Path="CheckOuterEllipse.Width" Value="18"/>
   </RadioButton.Style>
</RadioButton>

2nd snippet
The property element <RadioButton.Style> is missing:
Should be
<RadioButton Content="RadioButton">
  <RadioButton.Style>
    <Style TargetType="RadioButton">
        <VisualState x:Name="PointerOver">
            <Setter Path="Background" Value="White"/>
        </VisualState>

        <Setter Path="CheckOuterEllipse.Fill" Value="Green"/>
        <Setter Path="CheckOuterEllipse.Width" Value="18"/>
    </Style>
  </RadioButton.Style>
</RadioButton>

instead of
<RadioButton Content="RadioButton">
    <Style TargetType="RadioButton">
        <VisualState x:Name="PointerOver">
            <Setter Path="Background" Value="White"/>
        </VisualState>

        <Setter Path="CheckOuterEllipse.Fill" Value="Green"/>
        <Setter Path="CheckOuterEllipse.Width" Value="18"/>
    </Style>
</RadioButton>

Maybe you can adjust it in your proposal if I'm right. :)
Suggestions: Instead of a Path property it might be better to create a TargetName property on the Setter class
I understand that you call it "Path" because you access a property of a named element, which is a kind of property path. But here path is a bit confusing:
<Setter Path="Background" Value="White"/>

This should be
<Setter Property="Background" Value="White"/>

I would keep the Property-Property and I wouldn't introduce a new Path property on the Setter class. To access elements, I would create an additional property on the Setter class (like WPF has already) called TargetName:
Instead of this like in your suggestion
<Setter Path="CheckOuterEllipse.Fill" Value="Green"/>

you would write this:
<Setter TargetName="CheckOuterEllipse" Property="Fill" Value="Green"/>

Bringing in this concept would allow us to have Trigger support in UWP at a later stage that has the same syntax like in WPF. If you start something new with a "Path"-property, that wouldn't work anymore.
Feedback on the idea :)
In general, as I wrote already, I like this idea. I'm currently working on a Pluralsight course called "XAML: Getting Started" (will be out in February 2019) that focuses on UWP and WPF XAML. And actually, it was just in a recording last week when I would have had a use case for your idea. :)
The requirement was to change the check mark of a CheckBox to a simple cross when the CheckBox is checked. This is not possible in UWP without creating a copy of the ControlTemplate and changing the Glyph-property of the FontIcon element in the ControlTemplate. The FontIcon in the ControlTemplate has the name CheckGlyph. So, with your idea and my adjustment mentioned in this post I could have done this to display a cross when the CheckBox is checked - a cross (&#xE711) instead of a checkmark:
		<CheckBox Content="Is developer">
			<CheckBox.Style>
				<Style TargetType="CheckBox">
					<Setter TargetName="CheckGlyph" Property="Glyph" Value=""/>
				</Style>
			</CheckBox.Style>
		</CheckBox>

Nice!

Something we need to be aware of:
This feature means that the code of many developers will have dependencies to the named elements that are inside the ControlTemplates. This means if you want to change a ControlTemplate of a Control in the platform, you could break a lot of things. And with this feature enabled this is also true for any control library developer.
That means that this idea makes it much easier for the developer who uses the control, let's call this developer the Control Consumer. But if the Control Creator wants to update their default ControlTemplates, it will break things if the named elements are no more there. That means updating a default ControlTemplate gets hard. And from the Control Creator's point of view it would have been better if the Control Consumer would have created a copy of the whole ControlTemplate, which is the case that we have today. :)
So, there are two sides to consider. It looks like a really nice idea, but it has also a few drawbacks when a control creator wants to bring out a new default ControlTemplate. And maybe there are other things we need to be aware of.

I would keep the Property-Property and I wouldn't introduce a new Path property on the Setter class. To access elements, I would create an additional property on the Setter class called TargetName (like WPF has already):

My assumption is that Path would support more than just TargetName.Property. As in instead of just A.B it would support A.B.C, if that makes sense. If there aren't any scenarios that require that then describing it as a 'Path' might be overkill.

This feature means that the code of many developers will have dependencies to the named elements that are inside the ControlTemplates.

This is definitely true, and should be handled with intention. There's one callout to it in the requirements list:

Gracefully fallback or throw exceptions when template attribute markup has changed

The first thing that comes to mind for me are C#'s null-conditional operators. This sort of Path isn't targeting a real control type, only the template. Which as you mention is completely changeable. So there needs to be a graceful fallback when the element isn't present and/or the ability to customize that fallback. And almost certainly warnings when you are targeting an element and it is not found so if there's a silent fallback you can still find and correct this.
I think there's room for that kind of "soft dependency" though, knowing the risks. To me it seems better to enable that sort of dependency on the template rather than have so many outcomes where you're unable to write a feature without copying the entire template. For many controls those named elements aren't going anywhere.  It does mean that control authors that expect this type of customization need to take care specifically when changing named elements.

If this is a fundamental look at how Styling should work, perhaps if there are any errors, the control should fall back onto the default template - with error/warning highlighting with debugging and Intellisense.

I like this proposal a lot!
And I agree with @thomasclaudiushuber that it should be TargetName and Property. This would be more in line with other style elements. Path is always a property path until now, and it should stay that way. In the original proposal, it would be a mixture of element name and property path, which is irritating. And it would cause conflicts when there is also a real property on the style target which is named like the TargetElement of the setter.

@lukasf The original intent to use Path with "dotting" was to reduce the verbosity of the styntax for styling and to potentially support situations like Chris has already mentioned - "dotting" more that one property deep:
<Setter Path="SliderThumbStyle.Border.CornerRadius" Value="0"/>

Harder to do if you only have one property available to you... but perhaps we could do this with nested setters. Might get messy, however.

@kikisaints I don't know if it is true for 100% of controls, but usually all elements inside a stock ControlTemplate do have a name. So we can access and change every property of every element in the ControlTemplate using a setter like this:
<Setter ElementName="HorizontalThumb" Property="Width" Value="20"/>
For the example you posted, the SliderThumbStyle is not even an element in the ControlTemplate, but a style that is imported via StaticResource binding. I don't even know how your syntax whould know how to find it. And then how would it know that the next thing in the path is again a named element from the ControlTemplate?
If you wanted to change that SliderThumbStyle, you could inherit and override the style, and then use a setter like above to access the Border by ElementName and set its Properties. So it is well possible to achive it without having the combined path syntax.
I just think that it will be difficult and irritating if the same path syntax can access ControlTemplate elements by name, but also Properties, or even basically any element from application resources. And it could also lead to conflicts if there is a named element which has the same name as a property. Plus, it would give the "Path" a meaning that is different from what it has now. ElementName, Property and Value are already well known in the framework and could accomplish the same job. I agree that it would be a bit more verbose, but it would still be a major improvement, and allow us to override things without copying the ControlTemplate, in a clean way.

I see your point, and also that my example wasn't great - I was trying to portray that there may be scenarios where we would want to index more than two property layers deep, with the Element/TargetName, Property, and then Value syntax route we limit ourselves a little bit in that regard.
That being said, I don't have a good scenario that I can come up with at this time for why we would want to do the "dot" method - so until further notice I updated the original proposal to feature yours and Thomas' newer syntactical method of accessing template attributes.

I see your point, and also that my example wasn't great - I was trying to portray that there may be scenarios where we would want to index more than two property layers deep, with the Element/TargetName, Property, and then Value syntax route we limit ourselves a little bit in that regard.
That being said, I don't have a good scenario that I can come up with at this time for why we would want to do the "dot" method - so until further notice I updated the original proposal to feature yours and Thomas' newer syntactical method of accessing template attributes.

The problem as I see it, is how the control will function if it has been re-templated and elements renamed, removed, or changed.  The Style dot naming will throw up an error.

That being said, I don't have a good scenario that I can come up with at this time for why we would want to do the "dot" method - so until further notice I updated the original proposal to feature yours and Thomas' newer syntactical method of accessing template attributes.

Your SliderThumb.Border.Width example above was approaching this. If there's anything that people want to style that's a property of a property we'd need some sort of "Path" like option. Isn't x:Bind the better comparison here about using more code-like syntax? As much as I agree that usually it's only as far as ElementName.Property I wouldn't want us to box ourselves out of the possibility of one more level. It's not just about compact syntax.

The problem as I see it, is how the control will function if it has been re-templated and elements renamed, removed, or changed. The Style dot naming will throw up an error.

What if it didn't throw up an error? How bad does this get if it silently doesn't apply? Could we make this more robust by having some Requires tag/attribute that states what named/typed elements you expect so that you can author intentional fallbacks (if silent failure doesn't work for you)?

Silently not applying is fine, but it would be useful for debugging if there was a warning when style elements will not apply because of a mis naming, or a missing target.  We can assume named parts are required and would break the whole control if removed from a ControlTemplate.
Would control states be accessible via this new Styling syntax?  Pressed, Hover, Disabled, etc

Silently not applying is fine, but it would be useful for debugging if there was a warning when style elements will not apply because of a mis naming, or a missing target.  We can assume named parts are required and would break the whole control if removed from a ControlTemplate.

Agreed. I think a warning would be very appropriate.

Would control states be accessible via this new Styling syntax? Pressed, Hover, Disabled, etc

The proposal above does touch on that in the "Changing Properties on Visual States" section. By being able to specify a VisualState scope underneath the Style you could append styling rules onto the existing state machine. Do you think that'd be helpful?

I do not think that the current proposal on VisualStates is fully fleshed out. VisualStates usually have multiple animations to change values. Having only property setters for VisualStates would be very limiting, because it would prevent us from using animations.
But maybe we don't even need special syntax for VisualStates? If also all elements inside these VisualStates, including each animation, would have x:Name set, then we could modify each of them using normal Setter with ElementName+Property syntax (or property path, if it is added).
Generally, if this feature would be implemented, then all stock styles would need to be checked and x:Name applied to every single element that does not currently have one. Then WinUI could ship those reworked styles, so we can fully use the new override mechanism, even on older Windows versions. Maybe this should be added to the feature list @kikisaints?

@lukasf I wouldn't want this to fully replace our old styling system, at least not right off the bat. I will call out in requirements that this is an alternative to what we have today.

Hi all,
fantastic discussion here. I got the influenza this week, my wife and my kids too, and I enjoyed reading all of this discussion. I'm still running on 38.5°C, so I hope everything I write here is understandable. With my overclocked brain, I got a few new inputs and thoughts. ;-)
Path
I see that point that not using a Path could lock us out of some specific scenarios. But even with TargetName we could still add that specific case/property later:
<Setter TargetName="SliderThumb" Path="Border.Width"/>

I'm still not 100% sure if a Path would be the good thing for a setter or if there shouldn't be a completely different type, for example a PathSetter.
Dependency Properties
It wasn't mentioned anywhere yet, but this new feature requires to rewrite the precedence behavior of Dependency Properties. A local value on an element has normally a higher precedence than a value that comes from a Style Setter. But this is not true for a local value of an element in a Template where you use that new Setter kind we discuss here. I haven't though deeply about it, but I think the feature like it is now involves a lot of work with Dependency Properties.
Adjusting values without a Style?
Sometimes you might have just a single Control that you want to adjust. With the feature proposal like it is now you have to create a Style to adjust the Control's Template. But wouldn't it be better if you could do it with or without style?
Mixing normal setters and template setters?
I'm not sure if it's good to mix setters in a Style

affecting the targeted element
affecting an element in the targeted element's Template

in the same Setters property of the Style. Maybe it's better to have something more explicit. Something like this:
<Style TargetType="Button">
  <Setter Property="Background" Value="White"/>
  <Style.TemplateOverrides>
    <VisualState x:Name="PointerOver">
      <Storyboard>
         <PointerUpThemeAnimation Storyboard.TargetName="ContentPresenter" />
       </Storyboard>
    </VisualState>

    <Setter TargetName="ContentPresenter" Property="CornerRadius" Value="4"/>
  </Style.TemplateOverrides>
</Style>

But this brings me to the next problem:
Styles are for FrameworkElements, not only for Controls
A Style can be applied to any FrameworkElement. But only Controls have a Template property. So in general, including logic to adjust the Template in a Style seems to abuse the Style for Controls while it is made for all FrameworkElements. A TextBlock for example is a FrameworkElement but no Control. You can style it, but you can't adjust a Template, as it isn't a Control.
That said, I think the logic to adjust parts of a template should come from the Control class itself, as it is the Control class that defines the Template property. It must be something like this:
TemplateOverrides property in the Control class
Just an idea that would solve:

that a Style is valid for all FrameworkElements, and not only Controls
that you can adjust the template with a Style, but also locally on a Control without a Style.
that the concept of Dependency Properties can stay as it is

The whole feature is done in the Control class.
public class Control
{
  ...
  public TemplateOverridesCollection TemplateOverrides { get; set; }
}

<Style TargetType="Button">
  <Setter Property="Background" Value="White"/>
  <Setter Property="TemplateOverrides">
    <Setter.Value>
      <TemplateOverridesCollection>
        <TemplateOverride TargetName="ContentPresenter" Path="CornerRadius" Value="4"/>
      <TemplateOverridesCollection>
    </Setter.Value>
  </Setter>
</Style>

What are your thoughts?

@kikisaints I was not saying that the styling system should be replaced. I just say that all UWP contol styles should be checked and x:Name should be applied to all elements in the ControlTemplate which currently do not have a name. This would not change any behavior. But it makes all elements accessible by the new overrides. These updated style definitions could be shipped with WinUI, to allow overrides on all supported versions. WinUI does already now ship new copies of all styles, to bring compact sizing to older Windows versions. So this is not something new.

@thomasclaudiushuber Good point, style overrides should be available both in Xaml and Code-behind! Your proposal would sure solve this. We could then also have a second property VisualStateOverrides with a specialized collection that allows fully featured modification of VisualStates, including animations (we'd have to come up with a concept for how that works).

@lukasf I didn't mean Code-Behind. I meant also XAML, but locally without a Style. Like this:
<Button Content="My special Button, the one and only">
  <Button.TemplateOverrides>
    <TemplateOverridesCollection>
      <TemplateOverride TargetName="ContentPresenter" Path="CornerRadius" Value="4"/>
    <TemplateOverridesCollection>
  <Button.TemplateOverrides>
<Button>

Yes, I agree, there could be another property called VisualStateOverrides on the Control. But maybe it would be cleaner to have all in one place? For example, if we make TemplateOverridesCollection a TemplateOverrides class, it could be reasonable to have it directly there. What I think about looks like this:
<Button Content="My special Button, the one and only">
  <Button.TemplateOverrides>
    <TemplateOverrides>
      <TemplateOverrides.VisualStates>
        <!-- State overrides go here -->
      <TemplateOverrides.VisualStates>
      <TemplateOverride TargetName="ContentPresenter" Path="CornerRadius" Value="4"/>
    <TemplateOverrides>
  <Button.TemplateOverrides>
<Button>`

Overriding control states (i.e. Pressed, PointerOver) is an utter nightmare! Please improve this.


Doesn't work with Deno 0.35.0

Issues:

Deno.readdirSync was renamed to Deno.readDirSync
Deno.readdir was renamed to Deno.readDir
Deno.isTTY was renamed to Deno.isatty
Strict mode things

Deno.isTTY was renamed to Deno.isatty

Technically isatty is more powerful than just renaming (I did that PR).
Anyways I will look into this next week (you know, dead week + final exams...)

Deno.isTTY was renamed to Deno.isatty

Technically isatty is more powerful than just renaming (I did that PR).
Anyways I will look into this next week (you know, dead week + final exams...)

Great 👍. I indeed know 😅

if there is interest, i was able to migrate most calls to the new api surface - but my progress was stalled due to failing to await some deno apis. (explained more in detail in draft pr #3). i'm not exactly sure which apis i forgot to await and i feel like this puts us closer to making this usable for deno (0.43.0), so i created a draft pr in case someone else wants to pick up on this work

doesn't work with 1.16 either

still not working in deno 1.16


FW Request: return addrs

Not sure if I like how big the diff is, it was supposed to make things simpler, but it turned into a change.
This gives me ideas of putting the FW versions inside the config though, then we can set up info we use later in the __post_init__ function, removing duplicate code everywhere. Think: config.ecu_types[(addr, sub_addr)], config.get_addrs(extra_ecus=False, obd_multiplexing=True), etc.
Might close and re-open with that unification

re-thinking


[Bug] service "mariadb-mariadb-operator-webhook" not found

Documentation

[x] I acknowledge that I have read the relevant documentation.

Describe the bug

Hello, I'm randomly seeing this issue, when it's not possible to create MariaDB or Backup CR due to the error:
MariaDB/mariadb/flux-mariadb dry-run failed (InternalError): Internal error occurred: failed calling webhook "mmariadb.kb.io": failed to call webhook: Post "https://mariadb-mariadb-operator-webhook.mariadb.svc:443/mutate-k8s-mariadb-com-v1alpha1-mariadb?timeout=10s": service "mariadb-mariadb-operator-webhook" not found

However, the service exists as flux-mariadb-mariadb-operator-webhook. The operator is deployed with flux as
apiVersion: helm.toolkit.fluxcd.io/v2
kind: HelmRelease
metadata:
  name: flux-mariadb

And the issue is random, sometimes when I recreate the env, it works fine, sometimes not. Any ideas what could be the problem?
When experimenting I discovered that it works better when operator and CR are named the same, for example flux-mariadb.
If I name operator differently, ie flux-mariadb-operator, it won't work at all.
Expected behaviour

The service is always found correctly by name.
Steps to reproduce the bug

Values for operator are:
  values:
    ha:
      enabled: true
      replicas: 3

    metrics:
      enabled: false

    webhook:
      cert:
        certManager:
          enabled: true

Environment details:

Kubernetes version: v1.30.7 +k3s1
Kubernetes distribution: k3s
mariadb-operator version: 0.36.0
Galera data-plane version (init and agent): [Version number]
Install method: helm via flux

Now I tried to rename operator with fullnameOverride: flux-mariadb, so it created service flux-mariadb-webhook, however this time, it's searching for service:
MariaDB/mariadb/flux-mariadb dry-run failed (InternalError): Internal error occurred: failed calling webhook "mmariadb.kb.io": failed to call webhook: Post "https://flux-mariadb-mariadb-operator-webhook.mariadb.svc:443/mutate-k8s-mariadb-com-v1alpha1-mariadb?timeout=10s": service "flux-mariadb-mariadb-operator-webhook" not found

so random :smile:
Could we maybe force the service name somehow? Or how this auto-magic should work?

Another variant:
Backup/mariadb/flux-mariadb dry-run failed (InternalError): Internal error occurred: failed calling webhook "vbackup.kb.io": failed to call webhook: Post "https://flux-mariadb-webhook.mariadb.svc:443/validate-k8s-mariadb-com-v1alpha1-backup?timeout=10s": service "flux-mariadb-webhook" not found

I've just deleted and then created again flux's kustomization, I didn't change anything:
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: flux-mariadb
  namespace: flux-system

Service is still named flux-mariadb-mariadb-operator-webhook


Syntax error in documentation

Tags->@internal  16 line:  {@internal [description]}} maybe its should be {@internal [description]}

Look, this error is even in their documentation:

To increase readability and ease parsing should the tag be terminated with a double closing brace

Guys, this is a joke, right? If not, what's the reason behind that?

Look, this error is even explained in their documentation:

To increase readability and ease parsing should the tag be terminated with a double closing brace

@mvriel, could you elaborate on the reasoning behind that decision?
Also, how about changing that? Let's deprecate {@internal [description]}} in favour of {@internal [description]}. Would you be interested in a PR?


Found unknown principalType for GCP: deleted, domain

I ran collie tenant iam on our production GCP org and hit the following issue
22:18 $ ./run.sh tenant iam
Check file:///Users/jrudolph/dev/mc/collie-cli/src/main.ts
WARNING This CLI does not support AWS Role Assignment analysis at the moment. Please keep an eye out for further development on this.
ERROR Error: Found unknown principalType for GCP: deleted
    at GcpMeshAdapter.toPrincipalType (file:///Users/jrudolph/dev/mc/collie-cli/src/gcp/gcp-mesh-adapter.ts:118:15)
    at GcpMeshAdapter.getRoleAssignmentsForTenant (file:///Users/jrudolph/dev/mc/collie-cli/src/gcp/gcp-mesh-adapter.ts:93:33)

Another error message from the same spot is ERROR Error: Found unknown principalType for GCP: domain.

Domain and Deleted should be now supported as of collie 4.0. Please re-open if you still encounter issues.


ImportError: /home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/flash_attn_2_cuda.cpython-310-x86_64-linux-gnu.so: undefined symbol: _ZN3c105ErrorC2ENS_14SourceLocationENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

I'm trying to use text-generation-webui  to load an AWQ model but I encountered this error:
Traceback (most recent call last):
  File "/home/linjl/text-generation-webui/modules/ui_model_menu.py", line 249, in load_model_wrapper
    shared.model, shared.tokenizer = load_model(selected_model, loader)
  File "/home/linjl/text-generation-webui/modules/models.py", line 94, in load_model
    output = load_func_map[loader](model_name)
  File "/home/linjl/text-generation-webui/modules/models.py", line 293, in AutoAWQ_loader
    from awq import AutoAWQForCausalLM
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/awq/__init__.py", line 2, in <module>
    from awq.models.auto import AutoAWQForCausalLM
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/awq/models/__init__.py", line 1, in <module>
    from .mpt import MptAWQForCausalLM
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/awq/models/mpt.py", line 1, in <module>
    from .base import BaseAWQForCausalLM
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/awq/models/base.py", line 46, in <module>
    from awq.quantize.quantizer import AwqQuantizer
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/awq/quantize/quantizer.py", line 10, in <module>
    from awq.quantize.scale import apply_scale, apply_clip
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/awq/quantize/scale.py", line 8, in <module>
    from transformers.models.llama.modeling_llama import LlamaRMSNorm
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/transformers/models/llama/modeling_llama.py", line 55, in <module>
    from flash_attn import flash_attn_func, flash_attn_varlen_func
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/flash_attn/__init__.py", line 3, in <module>
    from flash_attn.flash_attn_interface import (
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/flash_attn/flash_attn_interface.py", line 10, in <module>
    import flash_attn_2_cuda as flash_attn_cuda
ImportError: /home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/flash_attn_2_cuda.cpython-310-x86_64-linux-gnu.so: undefined symbol: _ZN3c105ErrorC2ENS_14SourceLocationENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

env:
python 3.10.13
torch 2.2.2+cu121
flash-attn-2.5.9.post1

I have the same issue. Not resolved yet.

flash-attn-2.5.8 works
(mine is python 3.10.14, torch 2.3.0, ubuntu 22.04.4 LTS)

i have same the issue.
python 3.8.10
torch 2.1.2+cu121
flash-attn-2.5.8

i have same the issue. python 3.8.10 torch 2.1.2+cu121 flash-attn-2.5.8

you will need to roll back flash-attn version, I remembered flash-attn was working with torch 2.1.2+cu121

which version may works

i have same the issue. python 3.8.10 torch 2.1.2+cu121 flash-attn-2.5.8

you will need to roll back flash-attn version, I remembered flash-attn was working with torch 2.1.2+cu121

i try 2.5.4, 2.5.6, 2.5.7 still not works

it was few weeks back, I dont remember the verison, keep rolling back till it works.
or go for torch 2.3.0

i have same the issue. python 3.8.10 torch 2.1.2+cu121 flash-attn-2.5.8

you will need to roll back flash-attn version, I remembered flash-attn was working with torch 2.1.2+cu121

i try 2.5.4, 2.5.6, 2.5.7 still not works

it was few weeks back, I dont remember the verison, keep rolling back till it works. or go for torch 2.3.0

python 3.10  torch ==2.30 still not works

i have same the issue. python 3.8.10 torch 2.1.2+cu121 flash-attn-2.5.8

you will need to roll back flash-attn version, I remembered flash-attn was working with torch 2.1.2+cu121

i try 2.5.4, 2.5.6, 2.5.7 still not works

it was few weeks back, I dont remember the verison, keep rolling back till it works. or go for torch 2.3.0

python 3.10 torch ==2.30 still not works

try
pip install flash-attn --no-build-isolation

i have same the issue. python 3.8.10 torch 2.1.2+cu121 flash-attn-2.5.8

you will need to roll back flash-attn version, I remembered flash-attn was working with torch 2.1.2+cu121

i try 2.5.4, 2.5.6, 2.5.7 still not works

it was few weeks back, I dont remember the verison, keep rolling back till it works. or go for torch 2.3.0

python 3.10 torch ==2.30 still not works

pip uninstall flash-attn
pip install flash-attn --no-build-isolation

It looks like this is because the pytorch wheel on pypi uses cuda 12.1 but flash attention is compiled with cuda 12.2.  I don't even know where you would get a cuda 12.2 wheel for pytorch to work with this, but the only option would be to compile from source I think.

It looks like this is because the pytorch wheel on pypi uses cuda 12.1 but flash attention is compiled with cuda 12.2. I don't even know where you would get a cuda 12.2 wheel for pytorch to work with this, but the only option would be to compile from source I think.

there is not have  a  cuda 12.2 wheel for pytorch

pip uninstall flash-attn pip install flash-attn --no-build-isolation

i try whl to install , still can't

I'm trying to use text-generation-webui to load an AWQ model but I encountered this error:
Traceback (most recent call last):
  File "/home/linjl/text-generation-webui/modules/ui_model_menu.py", line 249, in load_model_wrapper
    shared.model, shared.tokenizer = load_model(selected_model, loader)
  File "/home/linjl/text-generation-webui/modules/models.py", line 94, in load_model
    output = load_func_map[loader](model_name)
  File "/home/linjl/text-generation-webui/modules/models.py", line 293, in AutoAWQ_loader
    from awq import AutoAWQForCausalLM
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/awq/__init__.py", line 2, in <module>
    from awq.models.auto import AutoAWQForCausalLM
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/awq/models/__init__.py", line 1, in <module>
    from .mpt import MptAWQForCausalLM
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/awq/models/mpt.py", line 1, in <module>
    from .base import BaseAWQForCausalLM
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/awq/models/base.py", line 46, in <module>
    from awq.quantize.quantizer import AwqQuantizer
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/awq/quantize/quantizer.py", line 10, in <module>
    from awq.quantize.scale import apply_scale, apply_clip
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/awq/quantize/scale.py", line 8, in <module>
    from transformers.models.llama.modeling_llama import LlamaRMSNorm
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/transformers/models/llama/modeling_llama.py", line 55, in <module>
    from flash_attn import flash_attn_func, flash_attn_varlen_func
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/flash_attn/__init__.py", line 3, in <module>
    from flash_attn.flash_attn_interface import (
  File "/home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/flash_attn/flash_attn_interface.py", line 10, in <module>
    import flash_attn_2_cuda as flash_attn_cuda
ImportError: /home/linjl/anaconda3/envs/sd/lib/python3.10/site-packages/flash_attn_2_cuda.cpython-310-x86_64-linux-gnu.so: undefined symbol: _ZN3c105ErrorC2ENS_14SourceLocationENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE

env:
python 3.10.13
torch 2.2.2+cu121
flash-attn-2.5.9.post1

i try flash_attn-2.5.8+cu122torch2.3cxx11abiFALSE-cp310-cp310-linux_x86_64.whl. it works
i guess  only  "abiFALSE" can use

I have the same issue when i am using vllm.
Just uninstall flash-attn, it works.
$ pip3 list | grep flash
flash-attn                        2.5.9.post1
$ pip3 uninstall flash-attn

I have the same issue when i am using vllm.
Just uninstall flash-attn, it works.
pip3 list | grep flash
flash-attn                        2.5.9.post1
pip3 uninstall flash-attn

I have the same issue when i am using vllm.
Just uninstall flash-attn, it works.
pip3 list | grep flash
flash-attn                        2.5.9.post1
pip3 uninstall flash-attn

😂😂😂I still hope to solve this problem. Flash-attn can accelerate reasoning. Of course, xformers can also be used in vllm to accelerate

+1. flash-attn=2.5.8 is unable to install.
My version:
CUDA 12.1
torch 2.3.0
python 3.10.14

+1
My version:
CUDA 11.7
torch 2.0.1
python 3.9.18

help!

Thanks. Python 3.9.19，cuda12.2，torch2.3.0 flash_attn==2.5.8, it works.

python3.9 cuda12.1 torch2.2, build the flash-attn from source, it did not work, same error


Fetching assets is broken in web workers

Bevy version
0.13
Relevant system information
WebAssembly/Web Worker
What you did
Ran Bevy in a Web Worker with an OffscreenCanvas and routed events over postMessage.
What went wrong
Everything was working nicely until I had to fetch a GLTF asset and I kept getting a panic. Turns out that HttpWasmAssetReader::fetch_bytes from bevy_asset assumes at wasm.rs#41 that it is running in a window and not in a worker.
Note that gloo-net used to have a similar issue but resolved the issue by probing the global object to see whether it was a web_sys::Window or a web_sys::WorkerGlobalScope in request.rs#323.
Additional information
This issue could be resolved by either adding a dependency on gloo-net or duplicating its logic into bevy_asset. For the latter approach, it might also be an idea to then add an option field to the HttpWasmAssetReader that contains the probed global object type once it has been "resolved".

Would you have an example project that you could share with this setup?


Enable-OrganizationCustomization is needed on new target tenant

In step 3 of the "Prepare the source (current mailbox location) tenant by accepting the migration application and configuring the organization relationship"
I found that when I did the step 3, I got the following error:
The command you tried to run isn't currently allowed in your organization. To run this command, you first need to run the command: Enable-OrganizationCustomization.
+ CategoryInfo          : NotSpecified: (:) [New-OrganizationRelationship], InvalidOperatio...ontextException
+ FullyQualifiedErrorId : [Server=PH7PR11MB5915,RequestId=c26ef171-cb49-4086-b24e-36b130741d9a,TimeStamp=1/14/2022 2:38:19 PM] [FailureCategory=Cmdlet-InvalidOperationInDehydratedContextException] D6
3E7DD6,Microsoft.Exchange.Management.SystemConfigurationTasks.NewOrganizationRelationship
+ PSComputerName        : outlook.office365.com
The first time I ran the Enable-OrganizationCustomization it took some time to run and then threw and error.  I came back later and ran it again, and it said it had already been completed.
At that time, I was then able to complete Step 3.  So this may be some knowledge that should be put in the article if this can be reproduced and validated that it was not unique to my clients new Tenant.
Thanks!

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

ID: c61c960c-f5c3-76f7-ac18-dfeaf30230e4
Version Independent ID: 3dc607b2-869e-976f-80da-d73cfb1210e5
Content: Cross-tenant mailbox migration - Microsoft 365 Enterprise
Content Source: microsoft-365/enterprise/cross-tenant-mailbox-migration.md
Product: microsoft-365-enterprise
GitHub Login: @kelleyvice-msft
Microsoft Alias: kvice

@pgdrews Thank you for your feedback. I was able to execute the cmdlet without Running Enable-OrganizationCustomization.
In the Microsoft datacenters, certain objects are consolidated to save space, and very rarely the tenant is dehydrated, which is when you will need to run Enable-OrganizationCustomization. I think that was the case with your tenant.
To check tenant status, you can run Get-OrganizationConfig | fl isdehydrated
If it is True, You need to run the cmdlet Enable-OrganizationCustomization.
Hope this helps!
Thanks
Sri

Perhaps we could add the following to the script:
Enable customization if tenant is dehydrated
$dehy=Get-OrganizationConfig | fl isdehydrated
if ($dehy -eq $true) {Enable-OrganizationCustomization}
Sound reasonable?

@msbemba

@pgdrews We have added cmdlet to the script to enable customization if the tenant is dehydrated. This can be tracked via PR#https://github.com/MicrosoftDocs/microsoft-365-docs/pull/7504
Thank you @kelleyvice-msft
Thanks
Sri

@msbemba Thank you very much for the contribution and updating the documentation with PR. @pgdrews Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Need to obtain URL path from incoming soap request

As a solution to issue #643, I am proposing an update to server.js to invoke soap service function with
additional argument to provide URL path from incoming request.
Test results:
I have tested soap requests with new "pathName" field in updated function callback and successfully received value as expected by my service function.
Test URL:
http://<IP_ADDRESS>:8080/krypton252/Services/EventPushSubscriber
// My Soap service method
var soapService = {
EventPushSubscriber: {
EventPushSubscriberSoap: {
ReceiveNotification: function(args, callback, soapHeader, pathName) {
Sample from server application log with expected path name:
pathName:  /krypton252/Services/EventPushSubscriber
Soap response received by client as expected:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:tns="http://apps.sertifi.net/services/subscribers">
soap:Body
<tns:ReceiveNotificationResponse xmlns="http://apps.sertifi.net/services/subscribers"/>
</soap:Body>
</soap:Envelope>

Hello @fyatzeck - thanks a lot for your contribution. :+1:
Please, see our Guidelines on Submitting a Pull Request and go through the steps mentioned there in order to get your PR fixed. Namely, the steps which prevent me from merging the PR are:

Add accompanying tests.
Merge/rebase your commits so that your PR consists of just one commit and rebase it on the current master branch

As requested, here is a summary of my test results using a simple test wsdl, I tried to attach xml formatted results in original comment but xml did not properly show but now know how to post xml:
Test endpoint URL:
http://localhost:8080/SayHello
First, I tested with the new service callback API:
sayHello: function(args, callback, soapHeader, pathName)
Output below correctly shows pathname request was received on:
Handling POST on /SayHello
received
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:examples:helloservice">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:sayHello soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <firstName xsi:type="xsd:string">Fred</firstName>
      </urn:sayHello>
   </soapenv:Body>
</soapenv:Envelope>

info
Attempting to bind to /SayHello
info
Trying Hello_Port from path /SayHello
The following is console log from my callback:

Got Hello request from {"attributes":{"xsi:type":"xsd:string"},"$value":"Fred"}

ON PATH NAME : /SayHello

replied
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:tns="http://localhost:8000/wsdl/HelloService.wsdl"><soap:Body><tns:sayHelloResponse><firstName>Fred</firstName></tns:sayHelloResponse></soap:Body></soap:Envelope>

Then, I tested backward compatibility with the existing service callback API only expecting "args" :
sayHello: function(args)
Output below shows pathname request was received on as "null" without any impact to the service call and response:
Handling POST on /SayHello
received
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:examples:helloservice">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:sayHello soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <firstName xsi:type="xsd:string">Fred</firstName>
      </urn:sayHello>
   </soapenv:Body>
</soapenv:Envelope>

info
Attempting to bind to /SayHello
info
Trying Hello_Port from path /SayHello
The following is console log from my callback:

Got Hello request from {"attributes":{"xsi:type":"xsd:string"},"$value":"Fred"}

ON PATH NAME : null

replied
<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:tns="http://localhost:8000/wsdl/HelloService.wsdl"><soap:Body><tns:sayHelloResponse><firstName>Fred</firstName></tns:sayHelloResponse></soap:Body></soap:Envelope>

As per merge/rebase instructions, I am really not clear how to merge/rebase from my forked repo fyatzeck:master, please advise.

closing for lack of activity


Add Utility Warehouse to "used by" section

Add Utility Warehouse logo
Preview https://deploy-preview-1108--thanos-io.netlify.com/

If there is nothing else you're waiting for, then feel free to merge :)

LGTM!


[Question] force start as a library

Hi @elgatito ,
Sorry for opening an issue for a question but you haven't allowed discussions..
I would like to know the meaning of this setting.

Thanks.

Which one?

It's in the title my friend.
"force start as a library"

Elementum is now built in 2 variants: as binary (as it always was) and as shared library, so that it would run as part of Kodi process.
That is helping to run on android, or elsewhere if starting binary is disallowed.

Cool, thanks for the quick answer.


Fixed Bug: Links on the blog dont break to a new line on mobile - improved text flow

Fixed issue https://github.com/expressjs/expressjs.com/issues/1637
Links on the blog were not breaking on mobile view which was assigned as a bug.
I improved the alignment further to make sure the text gets a better flow.
 Output of new change

Still making the change @bjohansebas I think it still didnt fix when i previewed in mobile. Mobile preview on Desktop shows it's fixed but it's not when I tried on my actual mobile.

Oh, okay, then put it in draft mode so we know that the issue is still being worked on.

It should be fixed now @bjohansebas have a look and let me know.

Done 👍


Multiline comments are trimmed too aggressively

Description
We are currently adopting vuese in our component library. So far it works pretty well – thank you for this wonderful project.
Some of our components are a bit more complex – for those components we have written guides using plain markdown (for example, our table component comes with such a guide) which explain step by step how this component works. In addition to those guide we also have API documentation generated by using @vuese/parser. Sometimes we also want to include short examples in the API documentation that show how to use the component. Just to avoid developers going back and forth between the guides and API documentation too much. The example below shows such an example:
<script>
// Use this component together wit `fd-table-fixed` and `fd-table` in order to create a table with a fixed column.
// Example:
// ```xml
// <fd-table-fixed-wrapper>
//   <fd-table-fixed>
//     <fd-table />
//   </fd-table-fixed>
// </fd-table-fixed-wrapper>
// ```
export default {
  name: "FdTableFixedWrapper"
};
</script>

Our own renderer uses the component description array produces by vuese/parser, joins it using \n and then feeds it into our markdown-component that also does syntax highlighting.
Unfortunately every line in the component description array is trimmed which means that the intention of our example code is gone making it hard to read.

To Reproduce
Steps to reproduce the behavior:

copy the example above and
paste it into vuese explorer

Expected behavior
I expect that multiline comments are not trimmed from both sides.
Screenshots
See above
Which version do you use:
latest as of this moment
Additional information
I suggest either making the trimming lest aggressive (at least for multiline comments) or add the untrimmed comments as an additional property: "rawCommentDescription" or something like that. This way we could simply use that.

Or submit a pull request to get the deposits!
Tips

Checkout the Issuehunt explorer to discover more funded issues.
Need some help from other developers? Add your repositories on IssueHunt to raise funds.

IssueHunt has been backed by the following sponsors. Become a sponsor

hey @ChristianKienle. How are you? Hope that well.
I just create a PR that solves the problem :)

@maykefreitas super cool. :D Can't wait for it to get merged. ❤

@ChristianKienle hope that it help you :)

@ChristianKienle
 -<EMAIL_ADDRESS> -<EMAIL_ADDRESS> -<EMAIL_ADDRESS>


RHElement Generator should add :host([hidden]) to SCSS

:host([hidden]) { display: none } is necessary for all components, per best practices.
The RHElements Generator should add this line to the SCSS so contributing devs don't forget to add this bit.

Fixed in https://github.com/RHElements/generator-rhelement/commit/300f267e2257c2d69ba5a20c6eb337935d88fd82.


Update navbar

Hello, the navbar is really beautiful but quite filled up the text is going in next lines. It looks dense in first impression.
I can change it what I'm going to do is that in these buttons sections which is the mid section that has about, contact us etc. This can be like double column or may be divided into two lines so that about us which is in two lines as it cannot be fitted in this can be resolved and looks nicer.
In the rightmost section where it is select langauge and google their positions can also be improved this section will get more space in the navbar and will not look so dense.
Please assign me this issue.
Thank you.

I would like to work upon this issue. Please assign it to me Gssoc'23


Chat feature

I know it's on the roadmap. Just opening an issue for now because I might work on that.

cool!  you should be able to add new message types to the swarm if you wanna have the chat be entirely p2p.  distributed consensus is hard, though, and maybe you can find a nice way to have it work well without trusting each client's clock to be correct.


Add retries to configureIndex and update operations

Problem
We first shipped retries to upsert as a POC. Now that we are happy with that, we are expanding retries to configureIndex and update operations.
This PR includes updates to the retry logic itself, too: I found some errors when I applied it to configureIndex, yay!
Type of Change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] This change requires a documentation update
[ ] Infrastructure change (CI configs, etc)
[ ] Non-code change (docs, etc)
[ ] None of the above: (explain here)

Test Plan
CI passes.

To see the specific tasks where the Asana app for GitHub is being used, see below:

https://app.asana.com/0/0/1208718597634858

Re: CI/CD failures in Node20+:
I did a lot of research into why the http server we spin up in our integration tests fails in Node20+ but passes in Node18+. I honestly had to put a time-cap on my research into this, because I was finding a lot, but the TLDR is:

In Node20+, the native fetch API stabilized. With that stabilization came a major upgrade to Node's internal undici dependency... from 5.x to 7.x in this PR.
Within this upgrade were changes to how undici handles http connections wrt. You can see more here.

Basically, I had to add a sleep to our final integration test because I was getting the following error when I was debugging in Node20+, which indicates an aborted TCP connection:
TypeError: fetch failed
        at node:internal/deps/undici/undici:13185:13 {
      [cause]: Error: read ECONNRESET
          at TCP.onStreamRead (node:internal/stream_base_commons:216:20) {
        errno: -54,
        code: 'ECONNRESET',
        syscall: 'read'
      }
    }

I tried a bunch of different ways to add a sleep, including adding timeouts to server.listen and http.createServer, as well as sleeps to the final afterEach method, but none fixed it. The only fix I could come up with was adding the sleep to the Max retries exceeded w/o resolve itself.


Analysis server crashes when SDK path contains certain characters

I apologise for this case in advance, but I figured since I found it I should raise it 😿
I was investigating a bug in Dart Code related to symbols in paths, so I figured I'd put all the characters that Windows allowed in there (that I could type on my keyboard, anyway...) and then make sure I escaped everything correctly. I put the SDK in a folder named Dart-Test-!£$%^&()_+-=,.@~;'#[]{},
Turns out, Dart Code isn't the only thing that didn't like them.
[15:33:47]: Spawning M:\Apps\Dart\Dart-Test-!£$%^&()_+-=,.@~;'#[]{}\bin\dart.exe with args ["M:\\Apps\\Dart\\Dart-Test-!£$%^&()_+-=,.@~;'#[]{}\\bin\\snapshots\\analysis_server.dart.snapshot","--client-id=Dart-Code.dart-code","--client-version=2.11.0-dev"]
[15:33:47]: ==> {"id":"1","method":"server.setSubscriptions","params":{"subscriptions":["STATUS"]}}
[15:33:47]: ==> {"id":"2","method":"analysis.setAnalysisRoots","params":{"excluded":[],"included":["m:\\Coding\\Applications\\flutter\\examples\\hello_world"]}}
[15:33:47]: ==> {"id":"3","method":"analysis.updateContent","params":{"files":{"m:\\Coding\\Applications\\flutter\\examples\\hello_world\\lib\\main.dart":{"content":"// Copyright 2015 The Chromium Authors. All rights reserved.\r\n// Use of this source code is governed by a BSD-style license that can be\r\n// found in the LICENSE file.\r\n\r\nimport 'package:flutter/widgets.dart';\r\n\r\nvoid main() => runApp(const Center(child: const Text('Hello, world!', textDirection: TextDirection.ltr)));\r\n","type":"add"}}}}
[15:33:47]: ERR Unhandled exception:
FormatException: Invalid character (at character 44)
/M:/Apps/Dart/Dart-Test-!£$%^&()_+-=,.@~;'#[]{}/bin/snapshots/analysis_serv...
                                           ^

#0      _Uri._fail (dart:core/uri.dart:1597)
#1      _Uri._normalize (dart:core/uri.dart:2292)
#2      _Uri._normalizeOrSubstring (dart:core/uri.dart:2248)
#3      _Uri._makeFragment (dart:core/uri.dart:2161)
#4      new _Uri.notSimple (dart:core/uri.dart:1467)
#5      Uri.parse (dart:core/uri.dart:1012)
#6      _resolveScriptUri (dart:_builtin:239)
[15:33:47]: ERR vm-service: Error: Unhandled exception:
FormatException: Invalid character (at character 43)
M:\Apps\Dart\Dart-Test-!£$%^&()_+-=,.@~;'#[]{}\bin\snapshots\analysis_serve...
                                          ^

#0      _Uri._fail (dart:core/uri.dart:1597)
#1      _Uri._normalize (dart:core/uri.dart:2292)
#2      _Uri._normalizeOrSubstring (dart:core/uri.dart:2248)
#3      _Uri._makeFragment (dart:core/uri.dart:2161)
#4      new _Uri.notSimple (dart:core/uri.dart:1467)
#5      Uri.parse (dart:core/uri.dart:1012)
#6      IsolateLoaderState.init (loader.dart:83:25)
#7      _processLoadRequest (loader.dart:1042:23)
#8      _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:151)
[15:33:50]: ==> {"id":"4","method":"analysis.getHover","params":{"file":"m:\\Coding\\Applications\\flutter\\examples\\hello_world\\lib\\main.dart","offset":232}}

It was an old version I was using, but I just re-tested with 2.0.0-dev.35.0 and it's the same.

If I remove the last four characters []{} then it gets further, but the server crashes with this:
### Analyzer Info

The analyzer was launched using the arguments:

```text
M:\Apps\Dart\Dart-Test-!£$%^&()_+-=,.@~;'#\bin\snapshots\analysis_server.dart.snapshot
--client-id=Dart-Code.dart-code
--client-version=2.11.0-dev

Exception
Captured exception
IsolateSpawnException: Unable to spawn isolate: Dart_LoadScript expects argument 'source' to be non-null.
#0      Isolate.spawn (dart:isolate-patch/dart:isolate/isolate_patch.dart:363)
<asynchronous suspension>
#1      EvictingFileByteStore._requestCacheCleanUp (package:front_end/src/byte_store/file_byte_store.dart:68)
<asynchronous suspension>
#2      new EvictingFileByteStore (package:front_end/src/byte_store/file_byte_store.dart:43)
#3      AnalysisServer._createByteStore (package:analysis_server/src/analysis_server.dart:1089)
#4      new AnalysisServer (package:analysis_server/src/analysis_server.dart:390)
#5      SocketServer.createAnalysisServer (package:analysis_server/src/socket_server.dart:79)
#6      StdioAnalysisServer.serveStdio (package:analysis_server/src/server/stdio_server.dart:37)
#7      Driver.start.<anonymous closure> (package:analysis_server/src/server/driver.dart:442)
#8      _rootRun (dart:async/zone.dart:1126)
#9      _CustomZone.run (dart:async/zone.dart:1023)
#10     runZoned (dart:async/zone.dart:1501)
#11     Driver._captureExceptions (package:analysis_server/src/server/driver.dart:482)
#12     Driver.start (package:analysis_server/src/server/driver.dart:441)
#13     main (file:///E:/b/build/slave/dart-sdk-windows-dev/build/sdk/pkg/analysis_server/bin/server.dart:12)
#14     _startIsolate.<anonymous closure> (dart:isolate-patch/dart:isolate/isolate_patch.dart:277)
#15     _RawReceivePortImpl._handleMessage (dart:isolate-patch/dart:isolate/isolate_patch.dart:165)

The first exception looks like a bug in the implementation of Uri, which is causing the VM to crash. I'm going to mark this as a VM issue until that's resolved.
The second might well be the same bug, but I haven't looked into it enough to know for sure.

Just hit this in SDK version 2.0.0-dev.69.2, with a # symbol in the project path on Mac. Analyzer just crashes out and WebStorm encourages me to file a bug report. Stack trace is a bit deeper than the first reported version of this bug, so thought I should add it:
Analyzer Feedback from IntelliJ
Version information

IDEA WS-181.5281.31
2.0.0-dev.69.2
WS-181.5281.31, JRE 1.8.0_152-release-1136-b39x64 JetBrains s.r.o, OS Mac OS X(x86_64) v10.13.3 unknown, screens 1280x800, 1920x1080, 1920x1080

Exception
Dart analysis server, SDK version 2.0.0-dev.69.2, server version 1.20.3, error: Analysis failed: /Users/tonydowney/Development/slides_in_dev/#ClientName/slide/display.dart
FormatException: Invalid character (at character 45)
/Users/tonydowney/Development/slides_in_dev/#ClientName/slide...
                                            ^

#0      _Uri._fail (dart:core/uri.dart:1614:5)
#1      _Uri._normalize (dart:core/uri.dart:2309:11)
#2      _Uri._normalizeOrSubstring (dart:core/uri.dart:2265:12)
#3      _Uri._makePath (dart:core/uri.dart:2113:16)
#4      new _Uri (dart:core/uri.dart:1514:12)
#5      FileSystemState._absolutePathToFileUri (package:analyzer/src/dart/analysis/file_state.dart:946:18)
#6      FileSystemState.getFileForPath (package:analyzer/src/dart/analysis/file_state.dart:821:28)
#7      AnalysisDriver._computeAnalysisResult (package:analyzer/src/dart/analysis/driver.dart:1205:31)
<asynchronous suspension>
#8      AnalysisDriver.performWork (package:analyzer/src/dart/analysis/driver.dart:1064:39)
<asynchronous suspension>
#9      AnalysisDriverScheduler._run (package:analyzer/src/dart/analysis/driver.dart:2005:24)
<asynchronous suspension>
#10     AnalysisDriverScheduler.start (package:analyzer/src/dart/analysis/driver.dart:1946:5)
#11     new AnalysisServer (package:analysis_server/src/analysis_server.dart:402:29)
#12     SocketServer.createAnalysisServer (package:analysis_server/src/socket_server.dart:79:26)
#13     StdioAnalysisServer.serveStdio (package:analysis_server/src/server/stdio_server.dart:37:18)
#14     Driver.start.<anonymous closure> (package:analysis_server/src/server/driver.dart:441:19)
#15     _rootRun (dart:async/zone.dart:1124:13)
#16     _CustomZone.run (dart:async/zone.dart:1021:19)
#17     _runZoned (dart:async/zone.dart:1516:10)
#18     runZoned (dart:async/zone.dart:1463:12)
#19     Driver._captureExceptions (package:analysis_server/src/server/driver.dart:483:12)
#20     Driver.start (package:analysis_server/src/server/driver.dart:440:5)
#21     main (file:///b/build/slave/dart-sdk-mac-dev/build/sdk/pkg/analysis_server/bin/server.dart:12:11)
#22     _startIsolate.<anonymous closure> (dart:isolate/runtime/libisolate_patch.dart:277:32)
#23     _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:165:12)

Unfortunately this isn't fixed by the fix for #34621 (probably to be expected, had a different stack trace):
[11:59:57 AM]: Spawning M:\Apps\Dart\Dart-Test-!£$%^&()_+-=,.@~;'#[]{}\bin\dart.exe with args ["M:\\Coding\\Applications\\Google\\dart-sdk\\sdk\\pkg\\analysis_server\\bin\\server.dart","--client-id=Dart-Code.dart-code","--client-version=2.19.0-beta.2"]
[11:59:57 AM]: ==> {"id":"1","method":"server.setSubscriptions","params":{"subscriptions":["STATUS"]}}
[11:59:57 AM]: ==> {"id":"2","method":"analysis.updateContent","params":{"files":{"M:\\Coding\\TestStuff\\#Dart-Test-!£$%^&()_+-=,.@~;'#[]{}\\bin\\main.dart":{"content":"main() {\r\n  print(\"test\");\r\n  m\r\n}\r\n ","type":"add"}}}}
[11:59:58 AM]: vm-service: Error: Unhandled exception:
FormatException: Invalid character (at character 43)
M:\Apps\Dart\Dart-Test-!£$%^&()_+-=,.@~;'#[]{}\bin\snapshots\kernel-service...
                                          ^

#0      _Uri._fail (dart:core/uri.dart:1614:5)
#1      _Uri._normalize (dart:core/uri.dart:2309:11)
#2      _Uri._normalizeOrSubstring (dart:core/uri.dart:2265:12)
#3      _Uri._makeFragment (dart:core/uri.dart:2178:12)
#4      new _Uri.notSimple (dart:core/uri.dart:1484:18)
#5      Uri.parse (dart:core/uri.dart:1012:16)
#6      IsolateLoaderState.init (dart:vmservice_io/loader.dart:86:25)
#7      _processLoadRequest (dart:vmservice_io/loader.dart:1025:23)
#8      _RawReceivePortImpl._handleMessage (dart:isolate/runtime/libisolate_patch.dart:171:12)


Greying out pending nodes in the IDE

Pull Request Description
Adding node Kind::Pending and associating it with some grey like color schemes.
Important Notes
Some of us might have been hoping for a fix completely on the engine side, but it is already a month and the fix doesn't exist yet. It is not clear how much work is required to create such fix. Rather than hoping for it, I propose to use the Pending information which is already available in the IDE since #3729
I don't claim to be a visual expert. I am ready to adapt the visual presentation according to suggestions of the IDE guys.
Checklist
Please include the following checklist in your PR:

[x] All code conforms to the
Rust
style guides.
All code has been tested:

[x] If GUI codebase was changed: Enso GUI was tested when built using BOTH
./run ide build and ./run ide watch.

Video showing the greying out behavior:
https://user-images.githubusercontent.com/26887752/214882106-af3a3737-5eb9-4e0d-b40f-5f1cda8f84a2.mp4

... can we have video attached to this PR showing this in action and showing corner cases, to be sure this PR works as intended? :)

I had some problems uploading the video and embedding it, but here is a link to mp4 file - I am able to successfully play it on Chrome (but not on Firefox) or download it and play it with vlc.

From code point of view, all looks good.

Thanks a lot Pawel for helping me navigate in the IDE codebase!

Maybe using a little less strong gray color would make it look better as is.

Anyone with more visual design skills than me (e.g. everyone), feel free to suggest changes or directly commit into this PR and improve colors & etc.

The graph turns red when editing the node. It should not.

That behavior not related to my changes. If you think that is a bug, it needs to be addressed separately. And yes, I find the "turning red" behavior strange as well.

When nodes are marked as not computed, the optional arguments are not displayed. We still know what these nodes refer to, so the arguments should be there.

I'd like to fix that, but that is way deeper in the IDE code than I can dig into easily. Btw. the video associated with #4006 shows the same issue - IDE doesn't render optional arguments when node is in pending/errorneous/non-normal state.

At the end #4006 got integrated quickly and there is no need for this PR anymore. Thanks everyone who provided me guidance, reviews and pointed out visual flaws in my proposed implementation.


target_blobs.size() == source_layer.blobs_size() (2 vs. 1)

I use the resnext101-64x4d(R-FCN) to do det. And the pre-trained model is resnext101-64x4d-merge.caffemodel.
but it report the error:
Check failed: target_blobs.size() == source_layer.blobs_size() (2 vs. 1) Incompatible number of blobs for layer conv1
is my pre-trained model not suit for the resnext101-64x4d
could you help me?

I have fixed the bug, please download the newest https://github.com/soeaver/caffe-model/tree/master/det/rfcn/models/pascal_voc/resnext101-64x4d
And, all the det prototxt files apply to merge bn&scale caffemodels (https://github.com/soeaver/caffe-model/tree/master/det#1-original-faster-rcnn-training-on-voc-20072012-trainval-and-testing-on-voc-2007-test)

Thanks.
And what's more,I want to apply densenet for det, have you tried it ?? My program's result of applying densenet for det (basing on R-FCN) is not good.

I have tried densenet201 for det, but it costs too much GPU memory. And I didn't found significant improvment.


cannot use erc721 correctly from this package

trying to use erc721full from this package but cannot initialize it correctly. the compiler is telling me that the constructor shouldnt have any arguments. error gets thrown at here. everything works when i switch the library to the original onezeppelin/contracts library
💻 Environment
im using zepkit from the site.
🔢 Code to reproduce bug
`import<EMAIL_ADDRESS>import<EMAIL_ADDRESS>import<EMAIL_ADDRESS>import<EMAIL_ADDRESS>import<EMAIL_ADDRESS>import<EMAIL_ADDRESS>contract Thing is ERC721Full, ERC721MetadataMintable, ERC721Burnable, Ownable {
using SafeMath for uint256;
struct Price {
uint256 tokenId;
uint256 price;
string metaId;
TokenState state;
}
mapping(uint256 => Price) public items;
constructor(
    string memory name,
    string memory symbol,
    string memory uri,
    address payable fee,
    address payable creator
) public ERC721Full(name, symbol) {
    maker = creator;
    feeAddress = fee;
    baseUri = uri;
    id = 0;
    transferOwnership(creator);
    _addMinter(creator);

}}`

Hi @wuichen!
Thanks for your question. I have posted it in the Community Forum, where it can get a faster response by the community and the team. I will close this issue so we can continue the discussion there!
https://forum.openzeppelin.com/t/how-to-create-an-upgradeable-erc721/2513


TypeError: Invalid call to pythranized function when calling with param x[:,None]

Consider the function below.
import numpy as np

#pythran export test(float[][] or float[::][::])
def test(x):
    return np.max(x)

If you call test(np.zeros(2000,2)) everything's fine, but if you call with test(np.zeros(2000)[:,None]) you get the usual error:
TypeError: Invalid call to pythranized function `test(float64[:, :] (reshaped))'
Candidates are:

    - test(float[:,:])
    - test(float[::,::])

This despite the fact that np.zeros(2000)[:,None] has a shape of (2000,1). The problem is that np.zeros(2000)[:,None].strides is (8,0) and that trips up the verification code. Artificially setting the strides to (8,8) fixes the problem.

Yeah, as noted in the comment, this has been reshaped and is currently not supported. I should be able to workaround that.

@ashwinvis & @jeanlaroche #1048 should be an improvment there.

I confirm that @jeanlaroche 's test case works with #1048.

Yes, I confirm it's now fixed.


check time type in custom search attribute

What changed?
Add a logic to check time type in custom search attribute.

Why?
Previously, if there's a time.Time() type passed in, like CustomDateTimeField = '2024-02-07T15:32:30Z', there'll be an error.
In order to handle this, I converted it before forming the pinot query.

How did you test it?
unit test

Potential risks

Release notes

Documentation Changes

Pull Request Test Coverage Report for Build 018e7d9e-6de5-4965-9d8c-615d282ceaf9
Details

5 of 7 (71.43%)  changed or added relevant lines in 1 file are covered.
77 unchanged lines in 10 files lost coverage.
Overall coverage decreased (-0.03%) to 65.246%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

common/pinot/pinotQueryValidator.go
5
7
71.43%

Files with Coverage Reduction
New Missed Lines
%

service/matching/matcher.go
1
91.07%

service/matching/taskReader.go
2
84.88%

common/task/weighted_round_robin_task_scheduler.go
2
89.05%

common/task/parallel_task_processor.go
2
93.06%

service/history/execution/mutable_state_util.go
2
78.13%

common/persistence/statsComputer.go
3
96.07%

common/task/fifo_task_scheduler.go
4
82.47%

service/history/execution/mutable_state_task_refresher.go
14
62.03%

common/persistence/nosql/nosqlplugin/cassandra/workflow_parsing_utils.go
23
85.54%

service/history/task/task_util.go
24
69.43%

Totals

Change from base Build 018e7c9c-9c0b-4566-b2d3-1fdc482709dd:
-0.03%

Covered Lines:
95369

Relevant Lines:
146169

💛  - Coveralls


failing to upload the package

Dear Team,
after creating the package successfully we are not able to upload the package, as per internal resources Azure Subscription is required but in gethub its showing Microsoft 365 subscription only, we are failing to deploy the app to customers who dont have azure subscription. also the is a strange message about storage you mention which i couldn't understand, see below
Note: Poll app is currently not supported for customers with M365 billing region as Canada, South Africa and United Arab Emirates because of data residency issues.
https://github.com/OfficeDev/microsoft-teams-app-checklist/wiki/Solution-overview#checklist-app-data-storage
Regards

We do not support location Canada, UAE, South Arfica due to go local policy.


Rename binaryTargets

The binaryTargets configuration naming is confusing (vs. engine, binary, library) and totally not self explanatory. What it actually does, is to define the platforms of the engines (formerly known as binaries) that should be downloaded and made available to Prisma Client.
A name like platforms, enginePlatformTargets, enginePlatforms or similar would probably be able to reflect that better.
(This can be a backwards compatible change.)

Hi there,
As part of our effort to clean up our GitHub repo, we’re closing this issue to help focus on features and improvements that align with our focus areas and those of our community.
This issue was originally created for internal tracking purposes, but if you feel this is important to you, feel free to reopen the issue and get like-minded users to upvote as we will prioritize fixing issues based on community interest.
For more insight into our priorities and how we’re thinking about the future of Prisma, please see our blog post: https://www.prisma.io/blog/prisma-orm-manifesto.
Thank you for your understanding and support!


Issue 176 assign volunteers to repair request

Change Summary

Allow assigning the volunteer clicking on the assignee badge.
Once an assignee is assigned, change the status of the repair request to ACCEPTED.

Change Form

[x] The pull request title has an issue number
[x] The change works by "Smoke testing" or quick testing
[x] The change has tests
[ ] The change has documentation

Some comments regarding the design.

Displaying the repairer's name as well instead of only just the user id.

Also add a wrap on the text so that it does not overflow.

It took me some time to find out how to get the assign volunteers modal to show up for a repair request. Should we make it more intuitive?


GetWaterCalibration does not set defaults

set a default empty dictionary, and null calibration date
clean up logic of loading, like I did with LaserCalibration

Resolved by #128


Nuget example writes files outside OUT_DIR

Currently, the example build.rs for nuget packages writes outside build.rs, as seen here. This is a problem for two reason:

Build scripts should not write to any files outside OUT_DIR, as documented here. In fact, even stronger languaged is found in the build script example, where it says:

In general, build scripts should not modify any files outside of OUT_DIR. It may seem fine on the first blush, but it does cause problems when you use such crate as a dependency, because there's an implicit invariant that sources in .cargo/registry should be immutable. cargo won't allow such scripts when packaging.

The script currently hardcodes the path to target, even though it's possible to relocate the target folder, see build.target-dir.

Unfortunately, I don't really have a simple solution. At the very least, the second problem can be addressed by using cargo_metadata to find the target folder, instead of hardcoding the path in the build.rs and the import macro.
In fact, cargo metadata is already used in the import macro, but it looks for the workspace root instead of using the target_path.

EDIT: Further experimenting showed that the following approach won't work, as rustc-env in dependencies won't be propagated to the main crate, and so the import macro won't see it.
For the first point (avoiding writing to OUT_DIR), I thought a bit about the potential solutions, and here's the cleanest one I could think of: Use cargo.rustc-env to create an environment variable per winmd file, specifying the path where it can be found. E.G.
fn main() {
    let out_dir = std::env::var("OUT_DIR").unwrap();
    let src = current.join("nuget");
    for item in std::fs::read_dir(src) {
        println!("cargo:rustc-env=NUGET_DEP_{}={}", item.unwrap().file_name().into_string().unwrap(), out_dir);
    }
}

The nuget path resolver would then use std::env::var("NUGET_DEP_{}") to find where the winmd is. This could all be abstracted away behind a dep-dependency to simplify the implementation.

Fixed by #154


Refactor StmtIf: Formatter

Summary
Previously, StmtIf was defined recursively as
pub struct StmtIf {
    pub range: TextRange,
    pub test: Box<Expr>,
    pub body: Vec<Stmt>,
    pub orelse: Vec<Stmt>,
}

Every elif was represented as an orelse with a single StmtIf. This means that this representation couldn't differentiate between
if cond1:
    x = 1
else:
    if cond2:
        x = 2

and
if cond1:
    x = 1
elif cond2:
    x = 2

It also makes many checks harder than they need to be because we have to recurse just to iterate over an entire if-elif-else and because we're lacking nodes and ranges on the elif and else branches.
We change the representation to a flat
pub struct StmtIf {
    pub range: TextRange,
    pub test: Box<Expr>,
    pub body: Vec<Stmt>,
    pub elif_else_clauses: Vec<ElifElseClause>,
}

pub struct ElifElseClause {
    pub range: TextRange,
    pub test: Option<Expr>,
    pub body: Vec<Stmt>,
}

where test: Some(_) represents an elif and test: None an else.
This representation is different tradeoff, e.g. we need to allocate the Vec<ElifElseClause>, the elifs are now different than the ifs (which matters in rules where want to check both ifs and elifs) and the type system doesn't guarantee that the test: None else is actually last. We're also now a bit more inconsistent since all other else, those from for, while and try, still don't have nodes. With the new representation some things became easier, e.g. finding the elif token (we can use the start of the ElifElseClause) and formatting comments for if-elif-else (no more dangling comments splitting, we only have to insert the dangling comment after the colon manually and set leading_alternate_branch_comments, everything else is taken of by having nodes for each branch and the usual placement.rs fixups).
Merge Plan
This PR requires coordination between the parser repo and the main ruff repo. I've split the ruff part, into two stacked PRs which have to be merged together (only the second one fixes all tests), the first for the formatter to be reviewed by @michareiser and the second for the linter to be reviewed by @charliermarsh.

MH: Review and merge https://github.com/astral-sh/RustPython-Parser/pull/20
MH: Review and merge or move later in stack https://github.com/astral-sh/RustPython-Parser/pull/21
MH: Review and approve https://github.com/astral-sh/RustPython-Parser/pull/22
MH: Review and approve formatter PR https://github.com/astral-sh/ruff/pull/5458
CM: Review and approve linter PR https://github.com/astral-sh/ruff/pull/5459
Merge linter PR in formatter PR, fix ecosystem checks (ecosystem checks can't run on the formatter PR and won't run on the linter PR, so we need to merge them first)
Merge https://github.com/astral-sh/RustPython-Parser/pull/22
Create tag in the parser, update linter+formatter PR
Merge linter+formatter PR https://github.com/astral-sh/ruff/pull/5458

Current dependencies on/for this PR:

main

PR #5459   👈

PR #5460

This comment was auto-generated by Graphite.

i need to fix the ecosystem issue before we can proceed here

This pull request now ready for (hopefully) final review.
I went through the ecosystem checks, all checks should be either minor (exact complexity numbers or spans), intended (SIM114 ignoring identical branches with different comments) or improvements (fixed RET505 and SIM108 false negatives). I'm a bit unsure about the TRY004 removals, e.g. (https://github.com/apache/airflow/blob/f1e1cdcc3b2826e68ba133f350300b5065bbca33/airflow/www/views.py#L4391):
        if items is None:
            dag_ids: set[str] = set()
        elif isinstance(items, list):
            dag_ids = {item.dag_id for item in items if item is not None}
        elif isinstance(items, TaskInstance) or isinstance(items, DagRun):
            dag_ids = {items.dag_id}
        else:
            raise ValueError(
                "Was expecting the first argument of the action to be of type "
                "list[TaskInstance] | list[DagRun] | TaskInstance | DagRun | None."
                f"Was of type: {type(items)}"
            )

is None does not count as a type checking step and since we now always look at the entire if statement, we don't raise TRY004, but arguably that's a limitation of the rule.

Is there a way to isolate the formatter changes? It would be unfortunate if I have to review all linter changes again.

the formatter changes are in the first 4 commits and are virtually unchanged since the last time you reviewed (i had to rebase, but i hope i didn't change anything). The only changes are in the linter part fixing bugs that showed up in the ecosystem checks. I tried to break the linter changes into commits for specifics rules, in hope that this makes reviewing individual parts on their own easier.

The visitor implementations do not call into visit_elif_else_clause

Sorry, i thought i had implemented all visitors but that one had slipped through


Set custom question text

This is more a question than a bug report. Is it possible to set a custom question text in the source code? It can be done on iOS, but I can't find the way to do it on Android.

What do you mean by a custom question text? Modify the audience?

I mean the equivalent to iOS' [Wootric setCustomNPSQuestion:<NPS_QUESTION>]; (that's the docs name of the method, but it's actually setCustomQuestion.

Hi @alvaromb sorry for the loooong delay in my reply. We've been juggling through other features and issues. We decided not to add this to the SDK and will be removing it from the iOS SDK.
Thanks for the comprehension.


Cross appears at the end of input text on IE 11

On IE 11 (version 11.0.9600.18665), after selecting the element to edit, a cross appears at the end of the input text that, when clicked, doesn't do anything.

Is there a way to remove/hide it on IE? This behavior does not occur on other browsers (Google Chrome and Firefox).

That x is specific to IE and is supposed to clear the box.
If you want to stop the x from displaying, take a look here.

Hey @ckosloski,
Thank you for your feedback!
It solved my issue :wink:
Much appreciated!


Fix the Multi-jvm example

The ConfigRest.json needs adding to the example-model resources folder.
We need to deploy an etcd store first so that the service configurations can be persisted.
It also needs the configure-services (once the config service is available) and configure-example (once all the services are available) parts to be executed.

merged into develop


.mx-auto missing in latest version?

I updated tailwind to 0.3.0 and it seems to be missing the .mx-auto (container centering) class? Has anyone else experienced this oddity?

Hey @ryanscherler, it sounds like you are updating from 0.1.x straight to 0.3.0.
One of the changes in 0.2 was moving auto to the default margin configuration instead of being a hard-coded value:
https://github.com/tailwindcss/tailwindcss/releases#auto-is-no-longer-a-hard-coded-margin-value
You just need to update your config file to include auto like the latest default config file does:
https://github.com/tailwindcss/tailwindcss/blob/master/defaultConfig.stub.js#L634-L659

This makes total sense, thanks @adamwathan


OpenGL MSAA, ground object rendering optimization

Adds multisample antialiasing to the Windows GL1 & GL2 renderers (toggle added to the config menu)
No longer draws ground objects which are outside the player's vision

This was good to go until Hawbit poked me saying the gut was active again. I'd advise checking the latest merges from pasutisu and skipper and seeing if some of your changes may need revised (I don't think the last one is needed anymore unless it needs refactoring, pasutisu revised the code on that)

This was good to go until Hawbit poked me saying the git was active again and I approved a few of the prior ones. I'd advise checking the latest merges from pasutisu and skipper and seeing if some of your changes may need revised (I don't think the last one is needed anymore unless it needs refactoring, pasutisu revised the code on that)

Will do, it looks like pasutisu's fix is already in master, so I'll be sure to merge that in first. I also have a corresponding PR in ysce_public that this depends on, so I'll wait on review for that first: https://github.com/captainys/public/pull/8

Looks good, gonna go ahead and merge this - as stated in the libs repo, that's good to go as well.


INSTAGRAM  unable to login

I create Instagram Phishlet  but I m unable to login .
The error message   is :
[There was a problem logging you into Instagram. Please try again soon]

The guy above is a Scammer


selecting text with mouse commands

I have some code like this:
    robot.mouseToggle("down")
    robot.moveMouse(data.x, data.y)
    robot.mouseToggle("up")

I was hoping this would have the effect of selecting text, but I can't get the text to get highlighted Any ideas?

Mouse events are really weird on Mac. I bet we'll have to specify that the mouse is down for the mouse move or something weird like that. I'll look into it this week!

Looked into this a little bit, and it seems like you need to pass one of the drag event types (kCGEventLeftMouseDragged, kCGEventRightMouseDragged, kCGEventOtherMouseDragged) to get this to do a selection. It seems like the mouse button also needs to be marked as down, neither is sufficient on its own.

@noonat nice work.
So it sounds like maybe we'll need a drag: true option to mouseToogle?

For sure! Either that or a separate mouse drag function.

I have a branch with a separate dragMouse(x, y, button) function, where button is optional and defaults to left. It seems to be working as expected.
@octalmage How would you like to handle testing for something like that?

@noonat I currently don't have a way to test events like that, so don't worry about it for now. Create a pull request and I'll test it on all OSes manually.
I created something that works locally, but it doesn't work on TravisCI:
https://github.com/octalmage/robotjs/tree/keyboard-tests
See #98.

Opened #133 for this.


Making the HtmlHelper.GetEnumSelectList take GroupName into consideration when creating the list.

aspnet/Mvc#2292
Adding the DisplayAttribute.GroupName into the mix when using HtmlHelper.GetEnumSelectList for grouping of items in the list.
No sorting by default.

Hi @stebet, I'm your friendly neighborhood .NET Foundation Pull Request Bot (You can call me DNFBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
We will now validate the agreement and then real humans will evaluate your PR.
TTYL, DNFBOT;

:watch:

Thanks for the comments.I'll make these changes and update the request.

:watch: Very close.
Also:

Please rebase your fork as well as address last couple of non-minor comments.
Use an "updated" comment to let me know when you're done. GitHub doesn't notify anyone about new commits added to a PR. (Still sorry I missed fact you addressed all of my comments two days ago.)

I´ll fix these in a jiffy :)
thanks.

updated

Hmm.. did I rebase correctly? I added aspnet/as upstream, fetched latest upstream and rebased from there.
Wondering because the pull request seems huge now :/

Looks like you merged aspnet/dev rather than fetching the latest then git rebase of your fork. After a force push (git push -f origin), this PR should show only your commits.

git push -f origin says everything is up to date :/

Ok, think I managed to revert back to before the rebase/merge. Now to do this properly.

updated
I hope this makes sense now. Need to master my git-fu a bit more :)

Just curious to know that, Can not we use "Easy property initialize-rs" of C# 6.0 here https://github.com/stebet/Mvc/commit/bb6620bf03feb212da139c70d8fbaf9a1afd4d5a?

13af6f8


Implement patch control points sample

Description
Demonstrate how to use patch control points in extended dynamic state 2, which allows dynamic change of patch control points in tessellation.
Sample requires new model in assets: https://github.com/KhronosGroup/Vulkan-Samples-Assets/pull/21
Notes
Sample was tested using following configurations:
Windows 11 Education 22H2
NVIDIA GeForce RTX 3080 Ti (NVIDIA driver version: <IP_ADDRESS>18, driver date: 24.02.2023)
Intel(R) Core(TM) i7-9700K
16GB RAM
Windows 10 Pro
Nvidia T600 Laptop GPU (NVIDIA driver version: <IP_ADDRESS>49, driver date: 02.02.2023)
Intel i7-11850H
32GB RAM
General Checklist:
Please ensure the following points are checked:

[x] My code follows the coding style
[x] I have reviewed file licenses
[x] I have updated the header Copyright to reflect the current year (CI build will fail if Copyright is out of date)
[x] I have commented any added functions (in line with Doxygen)
[x] I have commented any code that could be hard to understand
[x] My changes do not add any new compiler warnings
[x] My changes do not add any new validation layer errors or warnings
[x] I have used existing framework/helper functions where possible
[ ] My changes build on Windows, Linux, macOS and Android. Otherwise I have documented any exceptions
[x] My changes do not add any regressions
[ ] I have tested every sample to ensure everything runs correctly
[x] This PR describes the scope and expected impact of the changes I am making

Sample Checklist
If your PR contains a new or modified sample, these further checks must be carried out in addition to the General Checklist:

[x] I have tested the sample on at least one compliant Vulkan implementation
[x] If the sample is vendor-specific, I have tagged it appropriately
[x] I have stated on what implementation the sample has been tested so that others can test on different implementations and platforms
[ ] Any dependent assets have been merged and published in downstream modules
[x] For new samples, I have added a paragraph with a summary to the appropriate chapter in the samples readme

The sample works fine for me on Win10 with an NV RT 2060.
A few things I noticed during my review:

Camera rotation on the horizontal axis is inverted (compared to all other samples)
Tessellation should be enabled by default
Default camera position is so far away, that tessellation is not visible until you move closer to the terrain. Default camera position should be moved closer.
What is the difference between the two terrain patches? Both look the same, and both change their tessellation when moving the slider. Shouldn't the sample demonstrate a difference between the static and dynamic setup?

A minor note on naming: I'm not a native speaker, but afaik it should be  dynamic_tessellation instead of dynamically_tessellation. Some for statically_tessellation.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: Zbigniew-Jedlinski-Mobica:x: Patryk-Jastrzebski-MobicaYou have signed the CLA already but the status is still pending? Let us recheck it.

Camera rotation is fixed.
Tesselation is enable by default.
Camera position now is closer to terrain model.
Terrain patches have pipelines built in different ways. Static is built without using patch control points. Dynamic is built using patch control points that can be modified in the cpp file.

@SaschaWillems , does it look fine now after the changes?

@asuessenbach when I loaded models with different number of control points in one pipeline, they were displayed incorrectly.
Each pipeline has a defined shader file that supports a certain number of patch control points.
As I understand this behavior is related to the way GLSL works

Then why use a dynamic number of patch control points?

The use of a dynamic number of patch control points is to cover the use of dynamic state 2. Dynamic state 1, 2 and 3 provide the functionality of using a dynamic pipeline instead of a static one.

Why do you initialize it again, then?

There are two initializations to make it more visible that one is used for the static pipeline and the other for the dynamic pipeline.

Tested on Android (Pixel 6), where extension is supported and sample seems to run fine, but the results do not look as expected e.g. on Windows. Maybe it is just wireframe not working as expected, but also increasing tessellation level does not have an effect.

Code looks good however, approving. Android not a blocker as this extension might have limited use on mobile.


MINOR: removing dead project and space headings evenly out

Hey @meirwah
I've found a broken link in the list (project seems to be dead). Also, even the spacing out more consistent.
Cheers!

👍


[DO NOT MERGE] Auto PR to update dependencies of istio

This PR will be merged automatically once checks are successful.
none

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
dd1cf34537e66da0da54b23ae1cd05ee74705a96
link
/test istio-presubmit

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.

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
8d018a63358d01c89c689ebc6eade5eec9d36ad2
link
/test istio-presubmit

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.

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
8e1b75cdc4ce0196b34ecb6d7920b77f716ba3f1
link
/test istio-presubmit

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.

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
282359ea61350a2458c1d6dfd0311db765e1c28d
link
/test istio-presubmit

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.

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
4bd92db32dade5cac13b539459fa9932de2b7578
link
/test istio-presubmit

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 istio-presubmit

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
4bd92db32dade5cac13b539459fa9932de2b7578
link
/test istio-presubmit

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.


feat: Disable progress bar logging at inference time.

Add a progress bar flag in the CorefModel constructor.
Add a default value in the Spacy configuration.
Add the constructor argument with default value set to True in subclasses.
Move the core of _inference to a separate method to avoid duplicate code.
Display the progress bar in _inference only if the progress bar flag is set.

See https://github.com/shon-otmazgin/fastcoref/issues/16

It should be good to go now, I've also tested it, and there are no errors.
Might have rushed the PR a bit last time.
Thanks for the comments @shon-otmazgin