Custom Style Rendering

@pauldendulk I uploaded a new branch with this functionality. Take a look and say, what you think. Could be made even less complicated with defining functio Render from CustomStyle as
public virtual Render(RenderStyleArgs args);

Than there isn't any event handling.
PS: I couldn't make the WPF render part, because I don't know, how to ;-).
Originally posted by @charlenni in https://github.com/Mapsui/Mapsui/issues/783#issuecomment-589154857

First, I will really not add anything that is not a bug fix.
I briefly looked. Seems to be generally what I had in mind. Perhaps it is also possible to call the customstyle callback in the RenderFeature method because any geometry could have a customstyle. My earlier idea was to have several custom styles, like you can have several kind of widgets. Perhaps this is possible by deriving from CustomStyle so that users can check the type in the callback.

@charlenni We could also leave the implementation completely open to the user. The user can get a callback of any feature/style combination. The style could be created by the user itself. How to render this is up to the user.
For performance I would not like to call a callback just for any feature/style. Not sure how to filter there.

Perhaps it is also possible to call the customstyle callback in the RenderFeature method because any geometry could have a customstyle.

That's a good idea.

My earlier idea was to have several custom styles, like you can have several kind of widgets. Perhaps this is possible by deriving from CustomStyle so that users can check the type in the callback.

At the end you would have many CustomStyles. For each thing you want to draw your own style.

@charlenni We could also leave the implementation completely open to the user. The user can get a callback of any feature/style combination. The style could be created by the user itself. How to render this is up to the user.

This is even now possible. You create a style, which derives from CustomStyle. Than you implement Render, wher you draw your feature with the given style on Skia or any other renderer.
Up to now, I would like to have the predefined styles. It is easier to start for that users, that don't want to draw their own. The only, that could be done would be to replace the old styles with new ones in the new style.

For performance I would not like to call a callback just for any feature/style. Not sure how to filter there.

Why not? If it is a CustomStyle, than you have to call Render.

For me the big advantage is, that if you draw direct to the canvas, the graphics is much clearer/sharper than if you create a bitmap and draw this on the screen.
Direct draw

Draw to a bitmap and draw that

As you could see, the first is much better and sharper. I assume, that direct draw are using the full resolution, while the second draws to a unknown canvas and this have much less pixels than the screen. I prefer always the first.

Why not? If it is a CustomStyle, than you have to call Render.

Yes, but I was thinking about the option to call the callback for just any feature/style combination. If we do this all the time for all the feature/style combinations, even when the user is not interested in in custom rendering, this might have unnecessary influence on performance.
I like the idea of keeping things open though, no specific style, just any style the user would like to use. So, perhaps we should add another way to filter out the unwanted callback.

No, the other way round. Each style is a CustomStyle. So you have to call Render for each style. A ready made SymbolStyle draws the symbol in the Render function and couldn't be changed. The same for the others.
You now call a render function for each feature/style combination too. So why should there be a performance leg?

You now call a render function for each feature/style combination too. So why should there be a performance lag?

True, it won't make a big difference. Still, I want things to go faster, not slower.

No, the other way round. Each style is a CustomStyle. So you have to call Render for each style. A ready made SymbolStyle draws the symbol in the Render function and couldn't be changed. The same for the others.

I like the idea of having the same approach to every style but I don't see yet how you could make it so that the regular styles call only the Mapsui implementations and the custom styles call the callback.
What I was thinking of this morning might be similar. Add a CustomRender callback to IStyle. The developer instantiating the style could set it or not. When it is not set it is not called, so a low performance impact. The regular styles still draw the regular implementation as they do now, but after they are drawn the CustomRender callback is called. So a user could drawn something on top of existing styles as well.

A more general remark about this approach. We are now discussing this with skia sharp rendering in mind. Could this callback also be used for drawing native XF elements in a XF overlay. How would that work? Perhaps you don't want to add and remove those elements every time. Perhaps the user has a list  of elements and checks if an element is already present in the list before creating it. With such an approach you might need to remove unused elements as well.

You now call a render function for each feature/style combination too. So why should there be a performance lag?

True, it won't make a big difference. Still, I want things to go faster, not slower.

No, the other way round. Each style is a CustomStyle. So you have to call Render for each style. A ready made SymbolStyle draws the symbol in the Render function and couldn't be changed. The same for the others.

I like the idea of having the same approach to every style but I don't see yet how you could make it so that the regular styles call only the Mapsui implementations and the custom styles call the callback.

Regular styles draw their content in the callback function as all custom styles too.

What I was thinking of this morning might be similar. Add a CustomRender callback to IStyle. The developer instantiating the style could set it or not. When it is not set it is not called, so a low performance impact. The regular styles still draw the regular implementation as they do now, but after they are drawn the CustomRender callback is called. So a user could drawn something on top of existing styles as well.

Where is the performance gain to check, if a function is empty to call an empty function?

A more general remark about this approach. We are now discussing this with skia sharp rendering in mind. Could this callback also be used for drawing native XF elements in a XF overlay. How would that work? Perhaps you don't want to add and remove those elements every time. Perhaps the user has a list of elements and checks if an element is already present in the list before creating it. With such an approach you might need to remove unused elements as well.

If you want to do this, you could do this. The Render (or better Draw) function is called whenever the MapControl redraw the map. You could there also enable or disable other things or move a button around on the new values of your style.
I saw, that there isn’t a canvas for the Xaml renderer. There are two approaches for this:

Create a SKCanvas as overlay and use the normal Skia drawing function
Create a path and return this in the arguments. For this, I added the Result field.

But with this approach you couldn’t separate data and rendering. And where to store this new styles? In Mapsui? Or in Mapsui.Rendering.Skia? Or in Mapsui.Styles as a new project?

But with this approach you couldn’t separate data and rendering. And where to store this new styles? In Mapsui? Or in Mapsui.Rendering.Skia? Or in Mapsui.Styles as a new project?

Are you now talking about the XF overlay or the custom renderer in general? I see separating data en rendering as a prerequisite. I think this is possible with the IStyle.CustomDraw. This is how I see it now:

Add the IStyle.CustomDraw
Create a BaseStyle that implements CustomDraw
Derive all styles from BaseStyle.
Call the CustomDraw method in some central place.
Call CustomDraw in some central place. Perhaps at the end of MapRenderer.RenderFeature `

``if (style.CustomDraw != null) style.CustomDraw(canvas, viewport, layer, style, feature, opacity);```

The styles will hold a pointer to the method but not the implementation. The regular draw implementation does not depend on the callback.

Where is the performance gain to check, if a function is empty to call an empty function?

Yes, that is the only difference, pretty minimal compared to the total duration, I admit. Although copying a method to the stack and removing it is a lot work compared to a single null check.

I assume, that modern compilers are so clever, that they get this.

Are you now talking about the XF overlay or the custom renderer in general?

In general.

I see separating data en rendering as a prerequisite. I think this is possible with the IStyle.CustomDraw. This is how I see it now:
* Add the IStyle.CustomDraw

Add IStyle.Draw

* Create a BaseStyle that implements CustomDraw

Correct

* Derive all styles from BaseStyle.

Correct

* Call CustomDraw in some central place. Perhaps at the end of MapRenderer.RenderFeature `

  * ``if (style.CustomDraw != null) style.CustomDraw(canvas, viewport, layer, style, feature, opacity);```

Call IStyle.Draw always

The styles will hold a pointer to the method but not the implementation. The regular draw implementation does not depend on the callback.

With this, you have special styles, that handled different from other styles. Why? A SymbolStyle is a style, that draws a symbol on the canvas. So its draw method draws a symbol to the canvas. Why should this style handeled different from the custom styles at a different place?

With this, you have special styles, that handled different from other styles. Why? A SymbolStyle is a style, that draws a symbol on the canvas. So its draw method draws a symbol to the canvas. Why should this style handeled different from the custom styles at a different place?

Could you be more specific about how you see things. Which classes? Which interfaces? Where are the implementations?
In the solution that I describe the CustomDraw method would be on the style definition and I do not want the implementation in there. How do you see that?

I don’t want to have special style like now. We have, for example, a SymbolStyle, which is check in RenderFeature and is drawn by a special function. In the case of using CustomDraw, the drawing will go there. All styles are drawn by a call to CustomDraw. Only difference is, that some of the styles are predefined by Mapsui like SymbolStyle, which has an already defined CustomDraw.
But when to set this predefined functions? I don’t know, where the right place is.

Perhaps IStyle.CustomDraw could be a static field?

I don’t want to have special style like now. We have, for example, a SymbolStyle, which is check in RenderFeature and is drawn by a special function. In the case of using CustomDraw, the drawing will go there. All styles are drawn by a call to CustomDraw.

I understand this is what you want in a very general sense but I don't see how this is technically possible.

Only difference is, that some of the styles are predefined by Mapsui like SymbolStyle, which has an already defined CustomDraw.

A Mapsui style class, like SymbolStyle, can not have a render implementation because that would make it platform dependent.

Perhaps IStyle.CustomDraw could be a static field?

It is not possible to define a static in an interface.

Why not doing it in a way the WidgetRenderer do it. You have to register a renderer for a given style. If the style has no renderer, than nothing is drawn. Default styles are registered when the renderer is created. No automatic special functions, but flexible enough for the users. If they want a new owner drawn style, they derive the style from IStyle and register an ISkiaStyleRenderer or IXamlRenderer at the renderer. When RenderFeature doesn’t find the style, than it looks in the dictionary if there is a registered renderer for this style. If yes, ok, if no, than this feature isn’t drawn. Goal is, that RenderFeature contains only this lookup for all styles. Predefined renderers like for SymbolStyle are registered in the constructor of the renderer and the SymbolStyleRenderer is an own class, which could also replaced by the user, if s/he likes another look. That’s clear and flexible.
The only problem I have: is it possible to use the renderer from an inherited class without re registering. E.g. you create NewSymbolStyle and derive from SymbolStyle. Should you then register SymbolStyleRenderer for NewSymbolStyle or could we find the next best renderer, in this case SymbolStyle, automatically?
For implementation: because it isn’t possible to have static functions in interfaces, we should move to a singleton concept as with BitmapRegistry.
Btw. last time you said to an user, that widgets could also move with the map. I didn’t understand this. When we started with widgets (I like the name Overlay more) its concept was to draw things, that stay on their place relative to the MapControl and don’t move around. If they should move with the map, than they should implemented as Features with a special Style. Isn’t this correct?
And another wish: you always work in the Master branch of Mapsui. The problem is, that I don’t get a message, if you something change. So I have to look again and again, if you worked at the code. Perhaps it would be better, if you create a new branch for your work and than merge this.

Why not doing it in a way the WidgetRenderer do it. You have to register a renderer for a given style. If the style has no renderer, than nothing is drawn. Default styles are registered when the renderer is created. No automatic special functions, but flexible enough for the users. If they want a new owner drawn style, they derive the style from IStyle and register an ISkiaStyleRenderer or IXamlRenderer at the renderer. When RenderFeature doesn’t find the style, than it looks in the dictionary if there is a registered renderer for this style. If yes, ok, if no, than this feature isn’t drawn. Goal is, that RenderFeature contains only this lookup for all styles.

Predefined renderers like for SymbolStyle are registered in the constructor of the renderer and the SymbolStyleRenderer is an own class, which could also replaced by the user, if s/he likes another look. That’s clear and flexible.

Initially I saw this as a disadvantage, things could become confusing if users mess with the default implementation while they do not understand what they are doing. My idea was to avoid this. But perhaps you are right, and it would be handy in some situations. Not sure.
In general I can see how this could be build. We already do this for the widgets, so it is possible. But it does also sound complicated. And I would say the current feature renderer is simpler than the widget renderer.

The only problem I have: is it possible to use the renderer from an inherited class without re registering. E.g. you create NewSymbolStyle and derive from SymbolStyle. Should you then register SymbolStyleRenderer for NewSymbolStyle or could we find the next best renderer, in this case SymbolStyle, automatically?

If we use type checking than it is important that the more more specific type (the custom type derived from the default type) is check before the more general type. If it is the other way around the more general type will always be selected. Actually I had this problem rewriting the PointRenderer. See here:
https://github.com/Mapsui/Mapsui/blob/master/Mapsui.Rendering.Skia/PointRenderer.cs#L37
SymbolStyle is derived from ImageStyle and should be checked first. Initially this was the other way around and the ImageStyle case was never selected.

For implementation: because it isn’t possible to have static functions in interfaces, we should move to a singleton concept as with BitmapRegistry.

I see the BitmapRegistry as problematic because it has a static field. Why not use a registry like used for widgets. It is a registry on the renderer which also makes sense because that is where it applies:
public IDictionary<Type, IWidgetRenderer> WidgetRenders { get; } = new Dictionary<Type, IWidgetRenderer>();

Not sure about your suggestion yet, but it made me think of a disadvantage of the IStyle.CustomDraw callback, and that is that if create many different styles for separate features (which users do most of the time) you need to register this callback for every instance you create. Typically you would like to do this only once. So, a central registry would be a better option in this respect.

Btw. last time you said to an user, that widgets could also move with the map. I didn’t understand this. When we started with widgets (I like the name Overlay more) its concept was to draw things, that stay on their place relative to the MapControl and don’t move around. If they should move with the map, than they should implemented as Features with a special Style. Isn’t this correct?

I have to admit here do not have the full picture clear anymore, but I was my idea was that you are free to draw anything you want in the widgetrenderer. So I assume that this is possible. Although I am not sure if all necessary information is present in the widgetrenderer. Also, it was not completely clear how that specific case was supposed to work. Perhaps it widget does not need to be moved with the map all the time. My idea of a measure tool is that you click in the map, and drag, and you draw just at that location. If indeed this extra information needs to stay there at all times then a feature renderer would be better. That said, a measure tool is a very common thing in a GIS application and it seems to me it should typically be implemented by a widget. It this is not possible with the current implementation this should be changed.

And another wish: you always work in the Master branch of Mapsui. The problem is, that I don’t get a message, if you something change. So I have to look again and again, if you worked at the code. Perhaps it would be better, if you create a new branch for your work and than merge this.

I can do that. This is actually what I am used to in other projects.

I made a PR (see #839) for this, so we have a draft to discuss.

Initially I saw this as a disadvantage, things could become confusing if users mess with the default implementation while they do not understand what they are doing. My idea was to make this impossible. But perhaps you are right, and it would be handy in some situations. Not sure.

It is now possible, because the SytleRenderers is first check, before Mapsui styles are drawn. If Draw() returns true, no other style renderer is checked. If it returns false, than the normal rendering process takes place.

If we use type checking than it is important that the more more specific type (the custom type derived from the default type) is checked before the more general type. If it is the other way around the more general type will always be selected. Actually I had this problem rewriting the PointRenderer. See here:
https://github.com/Mapsui/Mapsui/blob/master/Mapsui.Rendering.Skia/PointRenderer.cs#L37
SymbolStyle is derived from ImageStyle and should be checked first. Initially this was the other way around and the ImageStyle case was never selected.

I dropped this. If a derived style should be drawn, than you have to register a derived style renderer. It is clearer than a fallback system.

I see the BitmapRegistry as problematic because it has a static field. Why not use a registry like used for widgets. It is a registry on the renderer which also makes sense because that is where it applies:
public IDictionary<Type, IWidgetRenderer> WidgetRenders { get; } = new Dictionary<Type, IWidgetRenderer>();

Did this now. Problem is the static function usage of WPF renderer.

Not sure about your suggestion yet, but it made me think of a disadvantage of the IStyle.CustomDraw callback, and that is that if create many different styles for separate features (which users do most of the time) you need to register this callback for every instance you create. Typically you would like to do this only once. So, a central registry would be a better option in this respect.

Yes. Did it this way. Is much better.

@charlenni May I compliment you on the Skia SpecialStyleSample. Although Mapsui has high quality standards this sample pulls Mapsui to an even higher level. It is sheer beauty. 😂

Do you touched/clicked one of this symbols?

oh! I did just now, but will not again. I do not want to hurt the teddybears!

😂
Btw. each time, they are redrawn, they get a new color. So you could see, how often the map is redrawn.

I made my own NuGet package to get the new user style. But now, there is no Mapsui.Rendering.Skia.SkiaStyles. Do you have an idea, whats going wrong?

It should be a namespace in the dll Mapsui.Rendering.Skia project. Where are you looking?

At using Mapsui.Rendering.Skia.SkiaStyles;.

I could find Mapsui.Styles.IStyleRenderer, but not the other things. Because of the first, I assume, that I have the newest sources.

At using Mapsui.Rendering.Skia.SkiaStyles;.

And you referenced the Mapsui.Rendering.Skia dll?

I added the Mapsui and the Mapsui.Forms package. Both work correct.
I now saw, that I also missing SkiaWidgets.

Do you have the same problem with Mapsui 2.0.0-beta.37 that was just published.

I don't see it on NuGet in VS 2019 up to now.

It was validated 9 minutes ago https://www.nuget.org/packages/Mapsui/2.0.0-beta.37

I got a message, but could not see it in VS 2019. On NuGet you could see, that the latest is beta.36, but if you open the Mapsui page you could see beta.37. It seems, that it needs some time.

Something else. There is the question how to call this functionality. We need to advertise this a bit. I would like to make a documentation page as well. It is an important improvement.  My idea was to call it Custom Styles with Custom Style Renderers.
If we choose this. I would also like to rename the sample as well.
What are your thoughts?

oh, it needs to be indexed. Don't expect this to take very long.

Something else. There is the question how to call this functionality. We need to advertise this a bit. I would like to make a documentation page as well. It is an important improvement. My idea was to call it Custom Styles with Custom Style Renderers.
If we choose this. I would also like to rename the sample as well.
What are your thoughts?

No problems with this. Custom Styles sounds good.

Now it is ready.

And no, I don't get the ISkiaStyleRenderer. It's missing.

Ok, created a new Xamarin.Forms project. Added Mapsui and Mapsui.Forms to shared and platform project and created a new class, which should use as SkiaStyleRenderer. What I'm getting is

Cursor is behind Skia..

Ok, found the problem. If you use the normal template in VS 2019 for Xamarin.Forms, it creates a class library and no shared project. Now dropped the library and added a shared project and now I find ISkiaStyleRenderer :-)

@charlenni I added some documentation.
https://github.com/Mapsui/Mapsui/blob/master/docfx/documentation/custom-style-renders.md
Feedback is welcome.

This was implemented and is an important feature.


Implement energy landscapes and pathways from simulation

The goal is to derive from the probability density (of e.g. Li+) a free energy landscape and then use that to trace the lowest energy pathways (direction, tortuosity) that lead to percolation (1D, 2D, 3D) etc.
TODO

[ ] Convert probability density to free energy: E = - k * T * ln(P). Minima in the free energy should coincide with the maxima in the probability density.
[ ] Calculate connectivity between (meta)stable positions, e.g.: https://dx.doi.org/10.1021/acs.chemmater.0c03893
[ ] Mimick some of the plots in that paper (Figs. 6-8).
[ ] Calculate barriers (i.e. activation energies)

softBV does something similar for crystal structures in CIF format:

https://scripts.iucr.org/cgi-bin/paper?S2052520618015718
https://www.dmse.nus.edu.sg/asn/softBVCL.html

They do something similar in this paper, see discussion around Figure 3:
https://pubs.acs.org/doi/epdf/10.1021/acsaem.2c02627
they calculate the (Helmholz) free energy from the MD-derived density (note in this case they "normalize" the density by dividing with the max - rho_0 in the paper. afaik this is arbitrary and shouldnt affect the shape of the calculated barrier/pathway; it simply shifts your minimum energy at 0)
However, they do not employ any pathfinding algorithm, they just assume the path is linear between two sites... In this case this works but not in a general case (e.g. argyrodite)
all this to say: we have similar calculations on the same material and can compare directly and possibly quantitatively.

I saw you were advancing on this, so I've added a simulation file on the following drive:
https://surfdrive.surf.nl/files/index.php/s/AcED4Uck2cG20y1
this corresponds to a simulation very similar to the ones reported in the paper in my previous comment. So using this the result should be something rather similar to their figure 3.

I saw you were advancing on this, so I've added a simulation file on the following drive:
https://surfdrive.surf.nl/files/index.php/s/AcED4Uck2cG20y1
this corresponds to a simulation very similar to the ones reported in the paper in my previous comment. So using this the result should be something rather similar to their figure 3.

Thank you this will be very useful!
However I can only load it using exception_on_bad_xml=False, and I get some errors like trajectory.positions=[]. Can you double check the sanity of the trajectory?

Branch #178 now evaluates the best percolating path using Dijkstra's algorithm.
I have included a notebook to show some examples.

It is now possible to plot the paths over the free energy landscape, similarly to the figure in the references:

It is also possible to evaluate the free energy along the path:

The results should be tested using a longer trajectory, in order to obtain better statistic.
This notebook explains how to use the new functionality, with some examples.


cite shortcode produces complete ref info for in-line citation

Hi @loup-brun! I'm excited about using this theme as an add on. I've done my best to follow your instructions, but I am seeing too much info appear when invoking the cite shortcode in a page. For example:

when it should just read "(Link & Sauer, 1998)". Have you seen this before? Perhaps I am missing something embarrassingly simple. I'd be happy to share the Hugo site itself if necessary. Thanks in advance!

It seems that the CSS specific to Hugo Cite is not called :thinking:. Can you check that the style sheet is well integrated?

🤦 it wasn't getting pulled into the head perviously. Your hint was all I needed to fix the issue. Thanks so much!


⚠ SkipTheCommericals has degraded performance

In 0193123, SkipTheCommericals ($STC) experienced degraded performance:

HTTP code: 200
Response time: 11043 ms

Resolved: SkipTheCommericals performance has improved in 1e486ce.


mkdirp is not a function

Hi, when I installed a version 2.3.3 I cannot generate my types anymore. I am getting error mkdirp is not a function. Packages are installed with yarn and mkdirp is present in the node_modules.
TypeError: mkdirp is not a function
    at /Users/tomi/Github/apps/corporator/server/node_modules/graphql-binding/src/bin.ts:60:3
    at step (/Users/tomi/Github/apps/corporator/server/node_modules/graphql-binding/dist/bin.js:44:23)
    at Object.next (/Users/tomi/Github/apps/corporator/server/node_modules/graphql-binding/dist/bin.js:25:53)
    at /Users/tomi/Github/apps/corporator/server/node_modules/graphql-binding/dist/bin.js:19:71
    at new Promise (<anonymous>)
    at __awaiter (/Users/tomi/Github/apps/corporator/server/node_modules/graphql-binding/dist/bin.js:15:12)
    at run (/Users/tomi/Github/apps/corporator/server/node_modules/graphql-binding/dist/bin.js:91:12)
    at Object.<anonymous> (/Users/tomi/Github/apps/corporator/server/node_modules/graphql-binding/src/bin.ts:40:1)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)

This fix worked for me https://github.com/graphql-binding/graphql-binding/pull/179

Thanks!


Remove unneeded (circular) dependency.

Fixes #103

Thank you for the contrib! I'm trying to get aurelia-validation back in top shape in the coming days.
Meanwhile, could you verify you signed the CLA? :)

@janvanderhaegen I did.

@janvanderhaegen He's verified. Please proceed.


usb_cam: 0.4.1-1 in 'humble/distribution.yaml' [bloom]

Increasing version of package(s) in repository usb_cam to 0.4.1-1:

upstream repository: https://github.com/ros-drivers/usb_cam.git
release repository: https://github.com/ros2-gbp/usb_cam-release.git
distro file: humble/distribution.yaml
bloom version: 0.11.0
previous version for package: null

usb_cam
* update README, add compression section
* update package.xml to include image_transport_plugins
* clean up README instructions
* update README ros2 run executable name
* Contributors: Evan Flynn

Closing this release as it targeted the wrong release repositories. Superceded by https://github.com/ros/rosdistro/pull/32837


Fix issue in parsing TRY_CAST() function

MR request for issue #1390 Unable to parse snowflake's TRY_CAST() function

Hi @manticore-projects ,
Can you please review this PR again? I have changes the implementation as suggested by you. Please let me know if its till needs any changes.
Best Regards,
Prashant

Thank you, it looks good to me and nicely done.
However, only @wumpz can decide about the final adoption. This may take a few days.

Hi @wumpz , @manticore-projects ,
This fix is important for our project. Could you please merge it so that it will become part of 4.3 release?
Best Regards,
Prashant

Greetings.
Noted, we will see what we can do. @wumpz is author and owner of the software and only he can merge. I would be able to assist you with a Snapshot JAR if this helped anything.

Sorry for being late with mergine. You know, there is some other stuff to do. However, your PR looks good.

I will deploy an actual snapshot during the next few hours.

Hi @wumpz , Thanks a lot for merging this PR.


Headless Chrome

Headless Chrome - https://github.com/WhichBrowser/Parser-PHP/issues/156

@NielsLeenheer Please can you merge this pr.

cleaned version (to be added after - https://github.com/WhichBrowser/Parser-PHP/pull/326): https://github.com/summercms/Parser-PHP-v3.x.x/pull/204/files


How am I supposed to add this library to my Android project?

I've been trying for the past 5 hours. Any tutorial on how to import it?

Take a look at how it is done in Android demo application please:
https://github.com/Picovoice/Porcupine/tree/master/demo/android

I get this error when running the application:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.[censored].[censored]-1/base.apk", zip file "/data/app/com.[censored].[censored]-1/split_lib_dependencies_apk.apk", zip file "/data/app/com.[censored].[censored]-1/split_lib_slice_0_apk.apk", zip file "/data/app/com.[censored].[censored]-1/split_lib_slice_1_apk.apk", zip file "/data/app/com.[censored].[censored]-1/split_lib_slice_2_apk.apk", zip file "/data/app/com.[censored].[censored]-1/split_lib_slice_3_apk.apk", zip file "/data/app/com.[censored].[censored]-1/split_lib_slice_4_apk.apk", zip file "/data/app/com.[censored].[censored]-1/split_lib_slice_5_apk.apk", zip file "/data/app/com.[censored].[censored]-1/split_lib_slice_6_apk.apk", zip file "/data/app/com.[censored].[censored]-1/split_lib_slice_7_apk.apk", zip file "/data/app/com.[censored].[censored]-1/split_lib_slice_8_apk.apk", zip file "/data/app/com.[censored].[censored]-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.[censored].[censored]-1/lib/arm, /system/lib, /vendor/lib]]] couldn't find "libpv_porcupine.so"
I replaced my package name with [censored]

The log says it cannot find the shared object. I guess you have not included it in your app ...

Shared object? What is that?

Where do I get the "shared file" (I'm assuming the file is libpv_porcupine.so) and where do I put it?

.so files are here: https://github.com/Picovoice/Porcupine/tree/master/lib/android
you can use the android binding here: https://github.com/Picovoice/Porcupine/tree/master/binding/android
it gives you a ready to use AAR...

Where am I supposed to put the .so files?

I get ai.picovoice.porcupinemanager.PorcupineManagerException: ai.picovoice.porcupine.PorcupineException: java.lang.IllegalArgumentException: Initialization of Porcupine failed.

How do I tell what's the issue? This also happens when I try to run your demo app.

I just tested the demo app and managed to build and run it on an Android phone.
have you looked into the logs?

The demo app doesn't even have the library imported properly. I don't know where you're getting at. I had to manually add the library to the demo app. I'm getting the same error. I got nothing from the logs. This library has 0 error reporting, if there's an exception, no matter what it is, it throws a PorcupineException.

Which folder do you open in Android Studio to see the demo application?

https://i.imgur.com/VOrvtxj.jpg
I get this error in the Porcupine class.

I've imported the library successfully:
https://i.imgur.com/55VOhAJ.png
However I still get this error. None of the native methods seem to work. The .so files are there.

I get the same error in your demo application without changing anything.

what do you mean by none of the native methods work? I don't know what is the issue here. I know that other developers have successfully loaded and used the demo app. from the information you provide I can't figure out the issue here. could be something related to your android studio ...

In the porcupine class, I get "cannot resolve corresponding JNI function" on methods like
public native long init();

and etc.

can you run any NDK project other than this? I suspect something is wrong with your IDE/toolchain setup ...

Hi man. Sorry, it turns out the NDK is importing properly and that error isn't real.
I decided to debug, and I found this error:
[ERROR] loading parameter file failed with 'IO_ERROR'
I have verified that params.pv exists. The path is /data/user/0/com.package.name/files/params.pv

Facing same error, aar link

Hello, I have error "java.lang.IllegalArgumentException: Initialization of Porcupine failed". I'm sure about address of files "*.ppn and *.pv" and I can open them.  but I have this error on this line "object = init(modelFilePath, new String[]{keywordFilePath}, new float[]{sensitivity});"
I'm developing on android studio in windows 10.


Registering mechanism for the TasksManager

What does this PR do?
Adds a registering mechanism for the TasksManager, allowing to dynamically register configs for any (backend, model, task) triplet.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

And another question about the usage. Each time we use the TasksManager with a new backend, we must register it again.
So to say to use a registered TaskManager for the CLI, we need to do the registration in the CLI script.   And if we want to use it elsewhere, we will need to do the process again? If so, does it make more sense to have an extended TasksManager for subpackages?

I do not understand your question. You need to register the config once, then it is usable everywhere.

For the CLI, I think it may be enough to have a check for optimum-neuron being install. The neuron commands may be in optimum main repo, but since it's a simple call to e.g. main_export from optimum-neuron and all the code is deported there, it is imo fine to have minimal code referencing it in optimum main.
For the ONNX export, it is as light as: https://github.com/fxmarty/optimum/blob/avoid-subprocess-calls-onnx-export/optimum/commands/export/onnx.py
For this PR, it feels like @register decorator makes things less readable than having a clear dict of the supported tasks. I also wonder why we could not have different TasksManager for different exporter? And shared methods at the top level?

We will not have anything in the main Optimum repo most likely. Just as we have a registering mechanism for the TasksManager we can do the same thing for the CLI.
The register method is intendend to be used by external code (= other people, and other subpackages). So that is why we register on a case by case basis. The whole goal of the TasksManager was to centralize what is needed for each exporters. And we do not need different ones for now, I do not see any issue as it works perfectly well with already 2 exporters.

Just as we have a registering mechanism for the TasksManager we can do the same thing for the CLI

What's the point if an if/else and check if optimum-neuron is installed is enough? How would this register mechanism look like?

The whole goal of the TasksManager was to centralize what is needed for each exporters

But there is no point sharing dict as _SUPPORTED_MODEL_TYPE if this is only usable for a fraction of the exporters. I don't see the issue with having shared methods in the TasksManager and e.g. inherited subclasses for each exporter defining what is supported and what is not, with this code residing in subpackages as optimum-neuron.
I don't understand the need to add an extra layer of complexity with decorators, partial functions and such. If possible, it would make sense to me to keep it simple: you look at the code, you know what is supported and what is not, you don't have to understand what decorators do to understand the code.
It feels like we are overengineering something that does not need to be overengineered.

This allows anyone to extend the code as it pleases. It is also not complex at all. It is a register mechanism, like many exist.
Anytime you have some factory (which the TasksManager kinda is), it is nice to be able to dynamically extends the code.
Example in our ecosystem: the "auto" classes in Transformers all support registering. For example AutoModel.

The difference with the Auto registering in transformers is that the Auto is designed for external users to extend it - here we are using a registering mechanic for an officially supported feature in Optimum, and making what we support explicit / less hacky is IMO better.

Both are orthogonal, this PR is adding a registering mechanism. About us making things explicit is something else.
We could imagine having a NeuronTasksManager and still have this registering feature.
We can still make things explicit, would a method "get_supported_models_and_tasks_for_backend" help?


docs: mention the types without types feature

Please don't delete this checklist! Before submitting the PR, please make sure you do the following:

[ ] It's really useful if your PR references an issue where it is discussed ahead of time. In many cases, features are absent for a reason. For large changes, please create an RFC: https://github.com/sveltejs/rfcs
[ ] This message body should clearly illustrate what problems it solves.
[ ] Ideally, include a test that fails without this PR but passes with it.

Tests

[ ] Run the tests with pnpm test and lint the project with pnpm lint and pnpm check

Changesets

[ ] If your PR makes a change that should be noted in one or more packages' changelogs, generate a changeset by running pnpm changeset and following the prompts. Changesets that add features should be minor and those that fix bugs should be patch. Please prefix changeset messages with feat:, fix:, or chore:.

I wonder if we should change the other docs and create-svelte to remove the usage of $types and then in the IDE section say you'll need to use $types if you want to use something other than VS Code?

I'm against this. In the docs these types provide valuable context to me. And since not all IDEs - intellij in particular - can't take advantage of it, it would be confusing for those who can't use it

Yeah, you have me convinced. Referencing the type is helpful just for understanding the type of things when reading the docs
The other thing I wonder is if this should go under "Editor setup" rather than the routing section

Why_not_both.gif


Support k8s helm

Support deploy by helm ~

Hello there! We have a k8s example for mist here https://github.com/Hydrospheredata/mist_k8s_setup
Unfortunately, we don't have any stable helm charts for mist yet.


can't generate paper's dog under new prompt text

Hi
i used the photos of the dog from the paper

after training the model (took about 1 hour) i try to generate new images "a photo of sks dog in a bucket "/ "a photo of sks dog swimming" (like in the paper)
but in some cases the model ignore the prompt and generated a photo of a dog which is really close the original images and in come cases the generation was not good at all
for example
"a photo of sks dog in a bucket"

i generated using different params  and text ( and img2img option)  prompt but nothing work for me
did some succeed getting better results ?
thanks

what method did you use ? the now one or the old one ?

this works in shiv repo and 4 imgs 800 steps so try these settings not 3000 steps.
But i dont know if scheduler is similar to shiv or its half of it etc. but his is pretty much spot on now and this one i did not test yet with 800 and 4 imgs

acutely i did many experiments (many many experiments)
using the old/new method
training with/without regularization with/without training text model
trained on 800 epochs or more
i also tried many prompt text :
a photo of sks dog walking
a photo of sks dog sleeping
...
i generated many images
2-3 of them was ok but 99.9% from them wasn't good:

my best generated image:


Add option to exclude Optional

Please add an option to not complain about from typing import Optional. I prefer Optional[X] over X | None, I consider the latter bad style.

Why do you consider Optional bad style? It's hard to add to existing annotations and takes more characters than adding | None

One of the reasons I dislike it is because it looks repetitive when you do foo: str | None = None, and foo: None | str = None isn't much better either (if using the union syntax I would rather put None at the end because the more important info is what type it should be if it is present IMO).
Anyway, it's subjective, and the PEP does not deprecate the old syntax, it merely mentions that another way is possible now. Some people might like it because it's shorter, but IMO Optional is much less awkward readability-wise.
I think it would make sense to either split it out into another error code or add an option to control this separately. I don't think this really counts as feature creep but if you don't feel like there's a compelling enough reason to add this I can just continue using my fork.

Agree to disagree here, I don't want to support this feature, sorry :(
I also think there are Python plans to deprecate Optional, Union from the typing module, which I strongly support.
Thank you for the discussion!

I wouldn't necessarily jump to that conclusion so quickly. Note how there's a distinction between typing.List and friends saying "Deprecated", while typing.Optional merely says "Changed", suggesting that an alternative syntax is possible. So if they do deprecate it in the future, there would probably be plenty of notice period.
Either way, this seems to be a widespread trend so I don't blame you for following it. It's trivial to maintain my own fork with a one-line change anyway (since it's a personal fork mainly intended to be used by myself I don't even have to bother keeping the current behavior as an option).
I just hope they don't remove Optional until/unless they add X? optional syntax (but that discussion has nothing to do with this repo anymore, I'm just thinking out loud).


feat: Create file browser component

Completes #946 🎉

Addressed all the change requests except for this one:

"/" may not work well with windows. i have some utils Paths.dirname and Paths.basename which may help

Is there a Windows user who can help me test this? I have a work laptop, but can't use it to install and test my fork.

Also, I noticed I can't see File Browser in the marimo-docs deployment. Am I missing something somewhere?


bug: Modal windows open and then close suddenly

Type: bug
Platform: android 4.4 webview
My app was updated to the 1.0 release and I started having issues with modal windows opening on 4.4.2 android devices.
I have a modal service that manages opening/closing/cleanup for modal windows and all modals are having this issue. The modal will open and then quickly close without any interaction from the user. You can see the open/close animations happen.
If I look at the console with dev tools for the device, I get an error that states "Uncaught TypeError: Cannot read property 'offsetX' of null". The error occurs in the ionSideMenuContent directive's content variable/object's setTranslateX() function:
    var content = {
      element: element[0],
      onDrag: function() {},
      endDrag: function() {},
      getTranslateX: function() {
        return $scope.sideMenuContentTranslateX || 0;
      },
      setTranslateX: ionic.animationFrameThrottle(function(amount) {
        var xTransform = content.offsetX + amount; // <- ERROR HERE!
        $element[0].style[ionic.CSS.TRANSFORM] = 'translate3d(' + xTransform + 'px,0,0)';
        $timeout(function() {
          $scope.sideMenuContentTranslateX = amount;
        });
      }),
      // ....
    }

Here's a codepen with an example of the usage of my modalService.
http://codepen.io/anon/pen/XbgEpX
It works in the browser but the issue happens in android 4.4.2 so I'm not sure how helpful this will be.

Should I report issues here or in the ionic forums to get help?

I just tried this with an android 4.4.2 device and wasn't able to replicate the issue using the nightly builds. Do you have anymore information that you could provide?

Did you try it with 1.0.1 stable? The codepen was pointing to 1.0.0 when it was created because it was before 1.0.1 was released.

Yes, I tried with both 1.0.1 and the nightly builds.
Mike Hartington

On Jul 29, 2015, at 2:26 PM, 3melectronicmonitoring<EMAIL_ADDRESS>wrote:
Did you try it with 1.0.1 stable? The codepen was pointing to 1.0.0 when it was created because it was before 1.0.1 was released.
—
Reply to this email directly or view it on GitHub https://github.com/driftyco/ionic/issues/3923#issuecomment-126049786.

Just in case someone else runs into this, we solved our issue by setting backdropClickToClose = false.
For us, it was a sporadic problem that only happened on our Android 4.4.2 device and we could not get the error to happen in a simple test code.
Adding a bunch of debug statements found that the click event for opening the window was also getting called for closing the window and it seemed to think there was a click in the backdrop to close.
We traced it to this block of code in ionic-angular.js
  return $timeout(function() {
    if (!self._isShown) return;
    //After animating in, allow hide on backdrop click
    self.$el.on('click', function(e) {
      if (self.backdropClickToClose && e.target === self.el && stack.isHighest(self)) {
        self.hide();
      }
    });
  }, 400);

We suspect it has something to do with the animation speed and that 400ms delay.  Perhaps someone else will find more details.

Greetings @3melectronicmonitoring!
My sensors indicate a reply was requested, but as we have not received one yet, I am using my robot powers to close this issue. However, if you are still experiencing this issue, please feel free to reopen it by creating a new issue, and include any examples or necessary information.
Thank you for allowing me to assist you.


Two test errors on openSUSE Tumbleweed with OpenJDK 15

Two test errors on openSUSE Tumbleweed with OpenJDK 15 on x86_64 and i686
Builds currently at https://build.opensuse.org/package/show/devel:languages:python/python-JPype1
[  152s] _____________________________ test_memory_leak_fix _____________________________
[  152s]
[  152s]     def test_memory_leak_fix():
[  152s]         """
[  152s]         This test raises java.lang.VirtualMachineErrorPyRaisable
[  152s]         (java.lang.OutOfMemoryError: Java heap space) if the memory leak
[  152s]         is present.
[  152s]
[  152s]         """
[  152s]         #   Check memory settings.
[  152s]         rt = jpype.java.lang.Runtime.getRuntime()
[  152s] >       assert rt.maxMemory() == MAX_JVM_HEAP_SIZE_BYTES
[  152s] E       assert 134217728 == 128647168
[  152s] E         +134217728
[  152s] E         -128647168
[  152s]
[  152s] examples/stubs/test_jarray_fixes.py:43: AssertionError
[  152s] __________________________ test_jarray_slice_copy_fix __________________________
[  152s]
[  152s]     def test_jarray_slice_copy_fix():
[  152s]         jl1 = JavaDoubleArray([1., 2., 3.])
[  152s]         pl1 = jl1[:]
[  152s] >       assert list(jl1) == pl1
[  152s] E       AssertionError: assert [1.0, 2.0, 3.0] == <java array 'double[]'>
[  152s] E         +[1.0, 2.0, 3.0]
[  152s] E         -<java array 'double[]'>
[  152s] E         Full diff:
[  152s] E         - <java array 'double[]'>
[  152s] E         + [1.0, 2.0, 3.0]

Seems to be Python version 3.8.5
On November 16, 2020 3:26:49 AM UTC, John Vandenberg<EMAIL_ADDRESS>wrote:

Two test errors on openSUSE Tumbleweed with OpenJDK 15 on x86_64 and
i686
Builds currently at
https://build.opensuse.org/package/show/home:jayvdb:py-bridge/python-JPype1
[  152s] _____________________________ test_memory_leak_fix
_____________________________
[  152s]
[  152s]     def test_memory_leak_fix():
[  152s]         """
[  152s]         This test raises
java.lang.VirtualMachineErrorPyRaisable
[  152s]         (java.lang.OutOfMemoryError: Java heap space) if the
memory leak
[  152s]         is present.
[  152s]
[  152s]         """
[  152s]         #   Check memory settings.
[  152s]         rt = jpype.java.lang.Runtime.getRuntime()
[  152s] >       assert rt.maxMemory() == MAX_JVM_HEAP_SIZE_BYTES
[  152s] E       assert 134217728 == 128647168
[  152s] E         +134217728
[  152s] E         -128647168
[  152s]
[  152s] examples/stubs/test_jarray_fixes.py:43: AssertionError
[  152s] __________________________ test_jarray_slice_copy_fix
__________________________
[  152s]
[  152s]     def test_jarray_slice_copy_fix():
[  152s]         jl1 = JavaDoubleArray([1., 2., 3.])
[  152s]         pl1 = jl1[:]
[  152s] >       assert list(jl1) == pl1
[  152s] E       AssertionError: assert [1.0, 2.0, 3.0] == <java array
'double[]'>
[  152s] E         +[1.0, 2.0, 3.0]
[  152s] E         -<java array 'double[]'>
[  152s] E         Full diff:
[  152s] E         - <java array 'double[]'>
[  152s] E         + [1.0, 2.0, 3.0]

--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/jpype-project/jpype/issues/891

--
Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.

These appear to be fixed now.

thanks for reportin back.


Wrong dependency version

Hello,
We use the latest version(1.7.0) and we noticed an incorrect version in the package.json(extrat dot at the end):
downloadesd version

repo version

Hi @lnu,
I fixed this on version 1.7.0-1 which was just released.

Fix in #191


kbd: Renamed norwegian dvorak keymap to dvorak-no.

This brings it in line with all the other dvorak map names, and keeps
it from hogging the "no" name from the qwery map.
Motivation for this change
Issue  #47877; would get dvorak instead of qwerty keymap for "no" map.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
Built on platform(s)

[X] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Fits CONTRIBUTING.md.

There are quite a few duplicates: https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/kbd

Do you mind adding those as well?

Looks good. Can you change the branch from staging to master? This might require a rebase + force push on your site.

Rebased to master, rewrote as a single commit on top of that, then force pushed.

@plutotulp never mind I actually meant the opposite. Did you were on staging before. I will push it to staging now. I must have been confused.

added in f1987fb58f57828944ca822bbb39b3de87f01863

At least I was able to test the pull request more easily on master.

Great, thanks!


Remove sentinels as they race with multi threading

Also add some TODOs for ideas how to get joins faster and we may still remove the gotos

Idea: We could handle the sentinels inside the IdTable
by using a finalizeSentinels class, that writes a maximums beyond bounds. Afterwards we have the sentinel in the off-by-one area and can use them with the old code.

Let's first see how much performance the removal of sentinels costs us. I think while the code looks cleaner they are also harder to reason about so they really need to pay for themselves with performance

@joka921 ok this is interesting. Turns out, this branch is actually 22% faster than current master and still 18% faster than the master branch after applying your change to the use of std::lower_bound
With sentinels and new/delete:
Average completion moves: 4.52 (vs 8.51 manually)
Executed 272 queries in 15032.706 seconds
with the following timings

Average: 55.27 ms/query
Max: 837.45 ms/query
90th percentile: 106.33 ms/query
70th percentile: 71.68 ms/query
50th percentile: 8.52 ms/query

With sentinels but no new/delete:
Average completion moves: 4.52 (vs 8.51 manually)
Executed 272 queries in 14579.671 seconds
with the following timings

Average: 53.60 ms/query
Max: 833.57 ms/query
90th percentile: 109.39 ms/query
70th percentile: 70.67 ms/query
50th percentile: 7.94 ms/query

Without sentinels:
Average completion moves: 4.52 (vs 8.51 manually)
Executed 287 queries in 13004.729 seconds
with the following timings

Average: 45.31 ms/query
Max: 710.91 ms/query
90th percentile: 93.13 ms/query
70th percentile: 27.60 ms/query
50th percentile: 5.30 ms/query

So it looks like sentinels are actually bad for performance. I guess without them the compiler just knows more and the branch predictor has no problems guessing the branches that one safes anyway.

216 fewer lines of code to break with all the same features but ~22% faster. Inflationary…

I've found another broken use of sentinels in the Text stuff. Will have to fix that tomorrow as the straightforward versions doesn't seem to work yet


Bug fix: RemoteData fails to return items when list of objects

Somewhere between v. 0.2.3 and v. 1.1.0 the extractMatches method in completer-base-data was changed.  This introduced a bug when using RemoteData when the returned data is a list of objects (value.toString() on line 48 of completer-base-data provides "[object Object]", which is not helpful).  Upon investigation, I found that this extractMatches method was being called in the search method of RemoteData, but there doesn't seem to be any need for it: wouldn't your remote data source already only be returning a list of matched items?  So I simply removed the call to extractMatches and my program started working again.

@kbdguy thanks for the PR!
It's not always that the server filters the data and therefore extractMatches is needed for remote as well.
can you provide a sample API result that causes the issue?

You can see the problem in your demo app.  The example entitled "Remote data with URL Formater and Headers" no longer works due to this problem (it works in the online version because what is published there right now is not the latest... I did a local build and confirmed it exhibits the same problem as I experienced) (btw, for my local build in the "completer-cmp-md" component,  I had to rename  to  to get around a runtime error. I'm not familiar with md, but I'm guessing they renamed this on you).

The error in the remote example was a result of CORS preflight that was caused becaused it also contained custom headers.
maybe the issue you encountered is because of #144

Yes, the issue I had is fixed in v 1.2.0.  Thank you!


Not compiling on CentOS 7

i try to compile the wallet, and get:
messagesigner.cpp: In static member function ‘static bool CHashSigner::VerifyHash(const uint256&, const CTxDestination&, const std::vector&, std::string&)’:
messagesigner.cpp:79:16: error: no match for ‘operator!=’ (operand types are ‘const CTxDestination {aka const boost::variant<CNoDestination, CKeyID, CScriptID, WitnessV0ScriptHash, WitnessV0KeyHash, WitnessUnknown>}’ and ‘CTxDestination {aka boost::variant<CNoDestination, CKeyID, CScriptID, WitnessV0ScriptHash, WitnessV0KeyHash, WitnessUnknown>}’)
there seems to be operator == , but != missing.
fix is easy by replacing "a != b" with " ! ( a == b ) ". See diff at the end.

export BDB_PREFIX=/root/src/db-4.8.30.NC/build_unix/build/
export CPPFLAGS="-I${BDB_PREFIX}/include/ -O2"
export  LDFLAGS="-L${BDB_PREFIX}/lib/"
export CXXFLAGS="${CPPFLAGS}"
./autogen.sh && ./configure  && make

here is git diff that fix the issue
diff --git a/src/key_io.cpp b/src/key_io.cpp
index 55198f0..9b78dc0 100644
--- a/src/key_io.cpp
+++ b/src/key_io.cpp
@@ -284,7 +284,7 @@ bool CBitcoinAddress::operator==(const CBitcoinAddress &rhs) const
bool CBitcoinAddress::operator!=(const CBitcoinAddress &rhs) const
{

return txDest != rhs.txDest;

return ! ( txDest == rhs.txDest );
}

bool CBitcoinAddress::operator<(const CBitcoinAddress &rhs) const
diff --git a/src/messagesigner.cpp b/src/messagesigner.cpp
index 18804b4..5fc9c53 100644
--- a/src/messagesigner.cpp
+++ b/src/messagesigner.cpp
@@ -76,7 +76,7 @@ bool CHashSigner::VerifyHash(const uint256& hash, const CTxDestination &address,
return false;
}

if(address != recoveredAddress) {

if(   ! (   address == recoveredAddress )  ) {
strErrorRet = strprintf("Addresses don't match: address=%s, addressFromSig=%s, hash=%s, vchSig=%s",
EncodeDestination(address), EncodeDestination(recoveredAddress), hash.ToString(),
EncodeBase64(&vchSig[0], vchSig.size()));

Different compilers. Will add that operator.

Fixed in PR. Will be released with 1.0.14


Need typescript support, is it already exist that I am missing or need to add?

I am using it in my typescript project and facing to configure it with typescript

there is currently not typescript type files added. this is a pure js project. would you like to add them for us?

I could take that on... If you want it to stay js only. jsdoc would be the way. Probably would makes sense doing this after #102 .

the project is still not 1.0 so a lot of the method signatures still could change. definitely wait for #102 and then wait maybe a little longer after that to let things settle. i'd like to do the same as how dotenv does it.

@khsuzan can you explain why you need this? dotenvx is mainly a cli library.
if you are using the old school require methodology, also why do you need types? it just loads to process.env.

@motdotla I can understand where he's coming from... Had to inject some env vars base on an env set by the cli. Had to look at the source from lib to check the function name. Having autocomplete for these type of situation is a nice to have.

ok, let's wait until after the 1.0.0 release.

That's great, let's wait for that.

@khsuzan can you explain why you need this? dotenvx is mainly a cli library.
if you are using the old school require methodology, also why do you need types? it just loads to process.env.

Commenting to maybe push for this feature soon.
I use this in, as you call it, the old school method (not sure what's old school about it), by pulling in my .env programmatically in the code. I do this because I have a package which I am linking via pnpm link --global to use in my other packages as a util package. The package I am linking has some .env vars necessary to make it work, but the .env is located in the package's directory. To make it work from other directories, I would need to specify the path of the .env of the global package every time I run it as a bin. Calling dotenvx.config() in the code itself allows me to bypass this. Unfortunately, I then get a typescript warning in the import for dotenvx which I have to disable.
Not a huge hassle but would be nice to have types for this for sure, seeing as calling config() in your code not deprecated and is certainly a valid use case.

To make it work from other directories, I would need to specify the path of the .env of the global package every time I run it as a bin. Calling dotenvx.config() in the code itself allows me to bypass this

makes total sense. thank you for sharing.
we're closing in on 1.0.0 release - probably 1 month away. then at that time, I think we will be ready to add types in.

actually, i think we could tackle lib/main.js now if you guys want to.
i would prefer jsdoc - that way it is tighly coupled with the code signature. when someone makes a change to the signature, they will see they should also adjust the jsdoc.
if someone tackles the PR for lib/main.js i'll get that merged in pretty much right away. let's keep it just to that though for now if you could. the underlying services and helpers could still end up changing a lot but i don't think lib/main signatures will.

@motdotla I would be up for the task.
I would suggest

using a TS declaration file for ease of distribution
import the type definitions  with JSDoc in the lib/main.js
enable type checking in lib/main.js with // @ts-check

Ok with that?


Pain Enhancer Gem Damage Calculation

Currently, the damage calculation for Pain enhancer includes your crit/crit damage in the calculation, but Pain Enhancer damage tics can never crit.  It is always a flat (in my case 6,000%) damage number.

Pain enforcer dmg is DoTs , DoTs include CHC/CHD ratio into the dmg.
as 1+(CHC x CHD)

Thanks for the reply.
I just assumed that since I never see orange colors that it never critted.  I wonder why they just averaged in your crit numbers instead of allowing the DOT to crit...
Does this apply to all DOTS?

Does this apply to all DOTS?

Yes, it does. This was a change a while back and it was noted in the patch notes back then. I've not heard of any DoT not using the 1+chc*chd multiplier since.


[DOCS] 1) Fixed broken link to test data files 2) Minor issues in samp…

…le code

Replace the non-existent link https://github.com/apache/sedona/tree/master/core/src/test/resources

with the valid link
https://github.com/apache/sedona/tree/master/spark/common/src/test/resources

Some minor issues in code sample (java and python)

Did you read the Contributor Guide?

Yes, I have read the Contributor Rules and Contributor Development Guide

No, I haven't read it.

Is this PR related to a JIRA ticket?

Yes, the URL of the associated JIRA ticket is https://issues.apache.org/jira/browse/SEDONA-XXX. The PR name follows the format [SEDONA-XXX] my subject.

No, this is a documentation update. The PR name follows the format [DOCS] my subject.

What changes were proposed in this PR?
How was this patch tested?
Did this PR include necessary documentation updates?

Yes, I am adding a new API. I am using the current SNAPSHOT version number in vX.Y.Z format.
Yes, I have updated the documentation.
No, this PR does not affect any public API so no need to change the documentation.

@zwu-net I overlooked the target branch of this PR. This PR tried to update the website branch directly, which is wrong. The website branch is compiled from the master branch docs folder. Please commit this change to the master branch directly.
We have a github action to automatically publish the change: https://github.com/jiayuasu/sedona-sync-action
If the docs folder is not updated, the change introduced by this PR will be overwritten by our github action.

OK. Let me do it. I am not familiar with this part. Thank you for letting
me know.
On Sun, Sep 22, 2024 at 8:14 AM Jia Yu @.***> wrote:

@zwu-net https://github.com/zwu-net I overlooked the target branch of
this PR. This PR tried to update the website branch directly, which is
wrong. The website branch is compiled from the master branch docs folder.
Please commit this change to the master branch directly.
We have a github action to automatically publish the change:
https://github.com/jiayuasu/sedona-sync-action
If the docs folder is not updated, the change introduced by this PR will
be overwritten by our github action.
—
Reply to this email directly, view it on GitHub
https://github.com/apache/sedona/pull/1598#issuecomment-2366831509, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AD2PCCS52ECG357ZS3ZJAJTZX3NEFAVCNFSM6AAAAABOTKGIGSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNRWHAZTCNJQHE
.
You are receiving this because you were mentioned.Message ID:
@.***>


Remove forced default focus outline

the current outline: thin dotted that is forced as "default" is not in fact default in Firefox/OS X; forcing it leads to unsightly dotted outline that's non-standard for the browser/platform.
removing it seems to have no adverse effect in other all situations where this mixin is used (buttons, scaffolding for general link styles, and the case of forms). attempted to use outline: initial at first, but this seems somehow broken in Firefox (ends up removing standard Firefox dotted outline on links).
This is mostly a bug-fix, rather than a new feature (hence targetting it for v3)
Closes https://github.com/twbs/bootstrap/issues/19933

/cc @cvrebert @mdo for review. related to https://github.com/twbs/bootstrap/pull/19708 (which is v4)

Any adverse effect on IE or Win Firefox?

will post some screenshots in a bit, but generally: no adverse effect (though subtly different, checkboxes, tabs - in navs - etc all still have a good focus indication)

some before/after shots.
for IE11, removing that explicit outline effectively brings the outline back to its natural look (i.e. links, buttons and checkboxes do have that particular outline normally)

for Firefox/Windows, the notable change is that <button> elements now have no forced outline - however, this is in line with general Firefox behavior once a particular :focus style has been set (FX won't show default dotted outline - though it would show an inner dotted outline around the actual text, which is suppressed by normalize.css). I'd argue it's still distinctive enough, though could be stronger...

@mdo @cvrebert thoughts on this?

Ported to v4 in #20275.


expose device driver for openenclave-curl testing

Signed-off-by: Brett McLaren<EMAIL_ADDRESS>

/retest


Add org user attribute to add organization to the ID token

Purpose

$subject

Related Issues

https://github.com/wso2-enterprise/identity-org-mgt-connector/issues/35

This is not required with the new method of resolving organization id and name for the id token

The switching organization can be taken from the tenant domain of the authenticated user as the switched organization's tenant domain is set against the authenticated user. This PR address it and hence this PR can be closed. https://github.com/wso2-extensions/identity-organization-management/pull/148


Added example MDX file for training

Please ignore.
Just a dummy PR created during MDX training. Will delete it soon.

Nice work! :-)


add test

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 92.05%. Comparing base (a00d4ce) to head (412640d).
Report is 36 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main      #66      +/-   ##
==========================================
- Coverage   94.57%   92.05%   -2.52%
==========================================
  Files          67       41      -26
  Lines        1142      705     -437
  Branches      141       98      -43
==========================================
- Hits         1080      649     -431
+ Misses         58       52       -6
  Partials        4        4

Flag
Coverage Δ

backend
?

frontend
92.05% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


css or sass file in component styleUrls

Hi, i'm trying to build a component with its own custom css (or sass)
e.g.
@Component({   selector     : 'parties-list',   templateUrl  : '/imports/ui/pages/parties-list/parties-list.html',   styleUrls    : ['/imports/ui/pages/parties-list/parties-list.css'] })
or using sass
@Component({   selector     : 'parties-list',   templateUrl  : '/imports/ui/pages/parties-list/parties-list.html',   styleUrls    : ['/imports/ui/pages/parties-list/parties-list.scss'] })
this doesn't work and the style is not applied.. it seems the files have been ignored.
I tryed using require in this way: styleUrls    : [require('/imports/ui/pages/parties-list/parties-list.scss')]
the css it's loaded but in this case it is available for all the project and not only for the specific component..
Any suggestion?
Thank you in advice
Luca

Yes it doesn't work.
For now as a work around you can put it in an other folder than import, then it will be load automatically.

Duplicated with https://github.com/Urigo/angular2-meteor/issues/244

Track here https://github.com/Urigo/angular2-meteor/issues/270


cue: hang for circular comprehensions

What version of CUE are you using (cue version)?
cfd0116c5fb065dd4d055236055b067177b70e1b
What did you do?
root: {
	a: [...int]

	for x in a {
		"\(x)": {}
	}

	b: [ for x in root {x}]
}

or in short
root: a: [ for x in root {x}]

What did you expect to see?
A structural cycle.
What did you see instead?
Hang.

This issue has been migrated to https://github.com/cue-lang/cue/issues/587.
For more details about CUE's migration to a new home, please see https://github.com/cue-lang/cue/issues/1078.


Refactor scheduler state with different management policy for volatile and stable states

Which issue does this PR close?

Closes #1703.
Rationale for this change

See the detailed discussion in #1703.
What changes are included in this PR?

Classify the states in the SchedulerState into two categories: VolatileSchedulerState and StableSchedulerState.
According to #1703, the VolatileSchedulerState maintains the following states in memory:

executor heartbeat
executor data, mainly for available resources
tasks

And StableSchedulerState maintains the following states in both memory and storage db:

executor metadata, mainly for the cluster topology info
jobs
stages
The stable states will be stored in both memory and storage db. The in-memory ones are the cache for fast reading and reducing deserialization cost.

The previous Watch in ConfigBackendClient for task status is no longer used. Instead, we leverage an event channel to achieve the job status update. Later with more states info, like pending tasks, the job status update can be handled explicitly so that the current cumbersome update implementation will no longer be used.

Since this PR has conflicts with the master code, I'll squash and merge first. Then I'll do the rebase.

Hi @alamb, @houqp, could you review this PR and give some comments?

Hi @yahoNanJing  I will look at this tomorrow. Also FYI I think @houqp  may be delayed in responding for a while.

I will look this later.

Also cc @Ted-Jiang
(I am sorry for the wide set of cc's but I don't know which of these contributors are working / coordinating together and I want to keep the information flowing between you all)

Left a small question, otherwise looks good. Thanks @yahoNanJing !

Hi @realno, could you help review this error handling commit?

Given how large this PR is getting (and thus its potential for accumulating conflicts) I am going to merge it to main and we can keep iterating in future PRs.
I looked at the error handling commit at https://github.com/apache/arrow-datafusion/pull/1810/commits/12b1c738a5754c62efea05cfc2d0b84e8180355e and it looked better than unwrap() to me (though there is likely still significant room for UX improvement with error handling).

Thank you everyone who helped review and thanks to @yahoNanJing  for the contribution!

Hi @realno, could you help review this error handling commit?

Look good, Thanks!


[tool_crash] FileSystemException: Creation failed, OS Error: No such file or directory, errno = 2

Command
flutter doctor

Steps to Reproduce

...
...
...

Logs
FileSystemException: Creation failed, OS Error: No such file or directory, errno = 2
#0      _Directory.createSync (dart:io/directory_impl.dart:124:7)
#1      ForwardingDirectory.createSync (package:file/src/forwarding/forwarding_directory.dart:20:16)
#2      ErrorHandlingDirectory.createSync.<anonymous closure> (package:flutter_tools/src/base/error_handling_io.dart:426:22)
#3      _runSync (package:flutter_tools/src/base/error_handling_io.dart:587:14)
#4      ErrorHandlingDirectory.createSync (package:flutter_tools/src/base/error_handling_io.dart:425:12)
#5      Cache.getCacheDir (package:flutter_tools/src/cache.dart:576:11)
#6      Cache.getCacheArtifacts (package:flutter_tools/src/cache.dart:586:36)
#7      Cache.getArtifactDirectory (package:flutter_tools/src/cache.dart:594:12)
#8      CachedArtifact.location (package:flutter_tools/src/cache.dart:806:35)
#9      CachedArtifact.isUpToDate (package:flutter_tools/src/cache.dart:818:10)
#10     Cache.updateAll (package:flutter_tools/src/cache.dart:709:26)
#11     FlutterCommand.verifyThenRunCommand (package:flutter_tools/src/runner/flutter_command.dart:1691:27)
#12     FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1394:33)
<asynchronous suspension>
#13     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#14     CommandRunner.runCommand (package:args/command_runner.dart:212:13)
<asynchronous suspension>
#15     FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:372:9)
<asynchronous suspension>
#16     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#17     FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:308:5)
<asynchronous suspension>
#18     run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:130:9)

encountered exception: PathNotFoundException: Creation failed, path = '/Users/mmg/.puro/envs/flutter/flutter/bin/cache/artifacts' (OS Error: No such file or directory, errno = 2)

#0      _Directory.createSync (dart:io/directory_impl.dart:124:7)
#1      ForwardingDirectory.createSync (package:file/src/forwarding/forwarding_directory.dart:20:16)
#2      ErrorHandlingDirectory.createSync.<anonymous closure> (package:flutter_tools/src/base/error_handling_io.dart:426:22)
#3      _runSync (package:flutter_tools/src/base/error_handling_io.dart:587:14)
#4      ErrorHandlingDirectory.createSync (package:flutter_tools/src/base/error_handling_io.dart:425:12)
#5      Cache.getCacheDir (package:flutter_tools/src/cache.dart:576:11)
#6      Cache.getCacheArtifacts (package:flutter_tools/src/cache.dart:586:36)
#7      Cache.getArtifactDirectory (package:flutter_tools/src/cache.dart:594:12)
#8      CachedArtifacts.getHostArtifact (package:flutter_tools/src/artifacts.dart:548:23)
#9      runInContext.<anonymous closure> (package:flutter_tools/src/context_runner.dart:381:42)
#10     AppContext._generateIfNecessary.<anonymous closure> (package:flutter_tools/src/base/context.dart:107:42)
#11     _LinkedHashMapMixin.putIfAbsent (dart:collection-patch/compact_hash.dart:543:23)
#12     AppContext._generateIfNecessary (package:flutter_tools/src/base/context.dart:95:20)
#13     AppContext.get (package:flutter_tools/src/base/context.dart:124:32)
#14     xcdevice (package:flutter_tools/src/globals.dart:77:35)
#15     runInContext.<anonymous closure> (package:flutter_tools/src/context_runner.dart:208:27)
#16     AppContext._generateIfNecessary.<anonymous closure> (package:flutter_tools/src/base/context.dart:107:42)
#17     _LinkedHashMapMixin.putIfAbsent (dart:collection-patch/compact_hash.dart:543:23)
#18     AppContext._generateIfNecessary (package:flutter_tools/src/base/context.dart:95:20)
#19     AppContext.get (package:flutter_tools/src/base/context.dart:124:32)
#20     deviceManager (package:flutter_tools/src/globals.dart:63:45)
#21     _DefaultDoctorValidatorsProvider.validators (package:flutter_tools/src/doctor.dart:183:19)
#22     Doctor.validators (package:flutter_tools/src/doctor.dart:252:47)
#23     Doctor.startValidatorTasks (package:flutter_tools/src/doctor.dart:258:45)
#24     DoctorText._validatorTasks (package:flutter_tools/src/doctor.dart:794:60)
#25     DoctorText._validatorTasks (package:flutter_tools/src/doctor.dart)
#26     DoctorText._runDiagnosis (package:flutter_tools/src/doctor.dart:798:53)
#27     DoctorText.piiStrippedText (package:flutter_tools/src/doctor.dart:791:47)
#28     DoctorText.piiStrippedText (package:flutter_tools/src/doctor.dart)
#29     CrashReporter.informUser (package:flutter_tools/src/reporting/crash_reporting.dart:92:32)
#30     _handleToolError (package:flutter_tools/runner.dart:236:36)
<asynchronous suspension>
#31     AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:153:19)
<asynchronous suspension>
#32     main (package:flutter_tools/executable.dart:93:3)
<asynchronous suspension>

Flutter Application Metadata
No pubspec in working directory.

Closing this as a duplicate of https://github.com/flutter/flutter/issues/142537


Rainbow parentheses are gone when syntax highlighting is enabled.

I usually work without syntax highlighting, but I turn it on on occasion. However, the coloured parentheses are gone when I do syntax on, and they don't come back after syntax off.

Thanks for reporting this issue, however I don't believe there is a fix for this case.
Niji uses ':highlight' to colour the parentheses, which ':syntax on' is designed to override. You should use ':syntax enable' to maintain any existing highlighting, whilst still loading a syntax file.


Reconcile library version from Git with CI

PR Type

[ ] Breaking change
[ ] Feature
[x] Patch

Brief Description
When trying to get the library version from the git tags, git in the CI container has an issue with the ownership of the checked-out repo. The steps added by this PR change the owner of the checked-out files to the current user in the container.
Not In Scope
PR Checklist

[ ] Is documented
[ ] Is tested
[ ] Adheres to applicable organization standards

🚀 [bumpr] Bumped! New version:v0.3.35 Changes:v0.3.34...v0.3.35


Designed volunteer.html page

Thanks for reviewing my contribution

Can u give a screenshot of your page

Sure, this is the screenshot of volunteer page

A mobile view too please

Looks good to me? Share the mobile version screenshot too if you have made it


Sounddont note true lengths

Is it possible to create a sound font with soundfont_builder.rb that will play for the length of any note without decaying?
My midi sounds weird compared to FluidSynth. In FluidSynth my midi notes will play for the length of how the note is defined in the midi file.
In midi.js the sound font will only last for the length defined in soundfont_builder.rb and shorter notes will trail on longer than desired

Midi.js can't loop the samples to sustain a note indefinitely like a real soundfont player. You can change the builder to increase the 3 seconds but it will make your soundfont bigger and it still won't be indefinite.
Shorter notes should not be a problem though.
Sent from my android device.
-----Original Message-----
From: MSB89<EMAIL_ADDRESS>To: "mudcube/MIDI.js"<EMAIL_ADDRESS>Cc: Subscribed<EMAIL_ADDRESS>Sent: Sat., 26 May 2018 7:56
Subject: [mudcube/MIDI.js] Sounddont note true lengths (#237)
Is it possible to create a sound font with soundfont_builder.rb that will play for the length of any note without decaying?
My midi sounds weird compared to FluidSynth. In FluidSynth my midi notes will play for the length of how the note is defined in the midi file.
In midi.js the sound font will only last for the length defined in soundfont_builder.rb and shorter notes will trail on longer than desired
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/mudcube/MIDI.js/issues/237

@hmoffatt - is there a way to modify to achieve this? like this sounds totally overengineering around the limit, but what if you add another dimension duration to the soundfont conversion concept, where you would have 1 sec, 2 sec, 3 sec, ...., maybe go to 16 sec.  or until a full decay of the note, for some pianos it could be 60 seconds...  and then implement a look ahead before any NoteOn to find out the duration of the note to play and use the appropriate mp3 file.  Thoughts?


[SPARK-29492][SQL]Reset HiveSession's SessionState conf's ClassLoader when sync mode

What changes were proposed in this pull request?
Run sql in spark thrift server, each session 's thrift server about method will be called in one thread, but when running query statement,  we have two mode:

sync
async
https://github.com/apache/spark/blob/5a482e72091c8db940408905e8c044f7f5d7814f/sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/SparkExecuteStatementOperation.scala#L205-L238

In sync mode, we just submit query in current session's corresponding thread and wait Spark to running query and return result,  and the query method will always wait for query return.
In async mode, in SparkExecuteStatementOperation, we will submit query in a backend thread pool, and update operation state,  after submitted to backend thread poll, ExecuteStatement method will return a OperationHandle to client side, and client side will request operation status continuously. after backend thread running sql and return , it will update corresponding  operation status, when client got operation status is final status, it will got error or start fetching result of this operation.
When we use pyhive connect to SparkThriftServer, it will run statement in sync mode.
When we query data of hive table , it will check serde class in HiveTableScanExec#addColumnMetadataToConf
https://github.com/apache/spark/blob/5a482e72091c8db940408905e8c044f7f5d7814f/sql/hive/src/main/scala/org/apache/spark/sql/hive/execution/HiveTableScanExec.scala#L123
Since we run statement in sync mode, it will use HiveSession's SessionState,  and use it's conf's classLoader. then error happened.
Current operation state RUNNING_STATE,
java.lang.RuntimeException: java.lang.ClassNotFoundException:
xxx.xxx.xxxJsonSerDe
  at org.apache.hadoop.hive.ql.plan.TableDesc.getDeserializerClass(TableDesc.java:74)
  at org.apache.spark.sql.hive.execution.HiveTableScanExec.addColumnMetadataToConf(HiveTableScanExec.scala:123)
  at org.apache.spark.sql.hive.execution.HiveTableScanExec.hadoopConf$lzycompute(HiveTableScanExec.scala:101)
	  at org.apache.spark.sql.hive.execution.HiveTableScanExec.hadoopConf(HiveTableScanExec.scala:98)
	  at org.apache.spark.sql.hive.execution.HiveTableScanExec.org$apache$spark$sql$hive$execution$HiveTableScanExec$$hadoopReader$lzycompute(HiveTableScanExec.scala:110)
  at org.apache.spark.sql.hive.execution.HiveTableScanExec.org$apache$spark$sql$hive$execution$HiveTableScanExec$$hadoopReader(HiveTableScanExec.scala:105)
	  at org.apache.spark.sql.hive.execution.HiveTableScanExec$$anonfun$11.apply(HiveTableScanExec.scala:192)
	  at org.apache.spark.sql.hive.execution.HiveTableScanExec$$anonfun$11.apply(HiveTableScanExec.scala:192)

We should reset it when we start run sql in sync mode.
Why are the changes needed?
Fix bug
Does this PR introduce any user-facing change?
NO
How was this patch tested?
UT

Can one of the admins verify this patch?

gental ping @wangyum  @srowen

ok to test

Can one of the admins verify this patch?

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/17162/
Test PASSed.

ok to test

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/17164/
Test PASSed.

Test build #112172 has finished for PR 26141 at commit 16898a8.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/112172/
Test PASSed.

I don't understand it enough to evaluate, really. Why is it different in 'sync' mode - do you mean not running in the background?

I don't understand it enough to evaluate, really. Why is it different in 'sync' mode - do you mean not running in the background?

yes， sync mode will just execute statement  in the session thread and return OperationHandle after finish execute.

ping @wangyum @LantaoJin @sandeep-katta

cc @cloud-fan

Don't we need to fix this problem?

It's a bit unfortunate that most reviewers don't know what's "sync mode" and how it affects the thrift-server. It would be good if you can put more background knowledge.
Also cc @juliuszsompolski

It's a bit unfortunate that most reviewers don't know what's "sync mode" and how it affects the thrift-server. It would be good if you can put more background knowledge.
Also cc @juliuszsompolski

Ok, I will ad some background to this

cc @cloud-fan  updated

Test build #121725 has started for PR 26141 at commit 16898a8.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26405/
Test PASSed.

Test build #121725 has finished for PR 26141 at commit 16898a8.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121725/
Test FAILed.

retest this please

Test build #121734 has started for PR 26141 at commit 16898a8.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26414/
Test PASSed.

Test build #121737 has started for PR 26141 at commit e2d35e5.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26417/
Test PASSed.

Test build #121734 has finished for PR 26141 at commit 16898a8.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121734/
Test FAILed.

Test build #121739 has started for PR 26141 at commit 1478de5.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26419/
Test PASSed.

Test build #121737 has finished for PR 26141 at commit e2d35e5.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121737/
Test FAILed.

Test build #121739 has finished for PR 26141 at commit 1478de5.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121739/
Test PASSed.

Test build #121885 has started for PR 26141 at commit 1478de5.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26556/
Test PASSed.

Test build #121885 has finished for PR 26141 at commit 1478de5.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/121885/
Test PASSed.

Test build #122033 has started for PR 26141 at commit 5b39d81.

Build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26706/
Test PASSed.

Test build #122035 has started for PR 26141 at commit aab9b30.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26708/
Test PASSed.

Test build #122035 has finished for PR 26141 at commit aab9b30.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/122035/
Test FAILed.

Test build #122036 has started for PR 26141 at commit a855460.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26709/
Test PASSed.

Test build #122036 has finished for PR 26141 at commit a855460.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/122036/
Test FAILed.

Test build #122033 has finished for PR 26141 at commit 5b39d81.

This patch fails build dependency tests.
This patch does not merge cleanly.
This patch adds no public classes.

Build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/122033/
Test FAILed.

Test build #122038 has started for PR 26141 at commit 2ffe30c.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26711/
Test PASSed.

Test build #122038 has finished for PR 26141 at commit 2ffe30c.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/122038/
Test FAILed.

Test build #122039 has started for PR 26141 at commit baa9f06.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/26712/
Test PASSed.

Test build #122039 has finished for PR 26141 at commit baa9f06.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/122039/
Test PASSed.

thanks, merging to master!


test: add fuzz testing

Though process
First tried to implement a "real" fuzzing test with @jazzer.js/core and @jazzer.js/jest-runner (see Notes).
Things were not working out as expected, so I came up with a working solution (see Solution).
Notes

Jazzer.js cannot instrument ES modules correctly, so it needs to integrate with Jest
we need to run Jest in watch mode, or else every line of fuzz output is eaten by Jest's status
there seems to be a memory issue in the Jest integration of Jazzer.js. RSS was stable when running with its standalone version, but when using Jest it keeps stacking until it reaches OOM
the Jest integration is running way more slowly than the standalone version
the corpus for the Jest test is located in .cifuzz-corpus/fuzz.test/importFrom/, and crashes are located in tests/fuzzing/fuzz.test/importFrom/
using the new FuzzedDataProvider(buffer).consumeString() method seems more performant than buffer.toString() (~15%) (in the standalone version, in Jest it's the opposite)

Solution
Based on the above observations (difficulty, if not impossibility, to implement fuzzing libraries for ESM packages) and choices made by ossf/scorecard, the "fuzzing" process is using the fast-check library (or more specifically its @fast-check/ava test runner integration).
Side notes
While working on this issue, I noticed ossf/scorecard didn't detect fast-check test runners integrations correctly, so I've opened issue https://github.com/ossf/scorecard/issues/3567 and submitted PR https://github.com/ossf/scorecard/pull/3568 to fix that.
In the meantime, I've added a "hack" import so fast-check gets detected correctly by ossf/scorecard.

:tada: This PR is included in version 1.0.2 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Wildcard in partials path is not discovering files

We've got our codebase split up into components, and each components html, scss and js lives in it's own directory.
When I'm using a path, such as 'src/components/**/*.hbs' the task throws an error saying the partial couldn't be found. When I add each individually as an array, as below it's able to find the partials.
[
  'src/components/header/*.hbs',
  'src/components/tools-menu/*.hbs',
  'src/components/footer/*.hbs'
]

I'm using node v6.2.1 and gulp-hb v5.1.0. I'm not too sure how to debug this further but I'm happy to take any suggestions at this point 😬

Do you use special characters like "[] () {}" (and possibly others) in path?
It may cause errors, e.g.:
'bad-path-[to]-gulp-hb-project'
'bad-(path-to)-gulp-hb-project'
'bad-path-{to-gulp-hb-project}'

@efender no special characters, just alpha, hyphens and slashes

I found that using the array syntax the debug output was showing the complete path to most of the partials besides the first one.
When I switched back to a single string with /**/*.hbs it had relative paths but including their subdirectory name, which kind of works for me. Still seems really odd from the array syntax though.

The array syntax is mostly for backwards compatibility with the pre-3.0 gulp-hb API and as a quick way to support exclusions (!**/some-dir/**). For any glob or glob-set (array of globs) it is assumed that the glob-parent of the first glob pattern (a given string or the first string in a given array). That glob parent will then be removed from the beginning of all glob results.
If you need to grab partials from multiple directories, you'll want to use the fluent API:
.pipe(hb()
    .partials('foo/**/*.hbs')
    .partials('bar/baz/**/*.hbs')
)

Closing due to inactivity and no similar reported bugs. Feel free to reopen if you're still having issues!

i have similiar error
`gulp.task('handlebars', function () {
var hbStream = hb()
// Partials
.partials(paths.fractal + '/components//*.{hbs,js}')
.partials('./templates/layouts//.{hbs,js}')
.partials('./templates/partials/hbs/**/.{hbs,js}')
    // Helpers
    .helpers(require('handlebars-layouts'))
    .helpers('./helpers/**/*.js')
    // Data
    .data('./data/**/*.{js,json}');

return gulp
    .src('./templates/pages/{,posts/}*.html')
    .pipe(hbStream)
    .pipe(gulp.dest('./dest/hbs_build'));

});`
works fine if partial sits directly in folder

/hbs/

if it nested deeply in subfolders task results in error

Same here please reopen.
File-structure:

componenets

partials

partial1

partial1.hbs

partial2

partial2.hbs

.pipe(hb()
				.partials('./src/components/**/*.hbs') // Not working!
				.partials('./src/components/shared/noscript/*.hbs') // Working!
)

@shannonmoeller

@MickL Given your use of .partials(), I think your partials are being registered as the following:

partials/partial1/partial1
partials/partial2/partial2

Could you use hb({ debug: true }), re-run the task, and provide the output that lists the partials, please?

@Ellomend I'm not sure how I missed your comment on this issue! My apologies. Did you get a working solution? My guess is that you had a similar issue as Mick. If you're still having issues, I would also request that you use hb({ debug: true }), re-run the task, and provide the output that lists the partials. Thanks!

Oh your answer was too fast! I already debugged until handlebars itself to find out that actually {{> partials/partial1/partial1}} is correct and working! (Same "issue" for gulp-compile-handlebars)

That's good feedback for how I can improve the README. Glad you got it working!

Any ideas on the other issue? Sorry for posting here but you answered so fast but not the other one :)

Is there any way to change the namespace? E.g. My team might want to just have partial1 instead of partials/partial1/partial1

I originally missed your other issue, but have since responded to it.
You can customize how the partials are named using the parsePartialName option. gulp-hb uses handlebars-wax under the hood, so you can use any of the options provided there.