Error if shader bindings aren't sequential

If shader code includes sampler bindings that don't start at 0 (e.g. texture sampler binding set to 1) then MoltenVK errors with:
validateFunctionArguments:3531: failed assertion Fragment Function(main0): missing sampler binding at index 1 for U_TextureSmplr[0].
The appropriate binding (1) is being passed to vkCreateDescriptorSetLayout and vkUpdateDescriptorSets.
Fragment code: (note U_Texture binding = 1)
#version 450
#extension GL_ARB_separate_shader_objects : enable

layout (binding = 1) uniform sampler2D U_Texture;

layout (location = 0) in vec3 fragColor;
layout (location = 1) in vec2 PS_TexCoord;

layout(location = 0) out vec4 outColor;

void main() {
    outColor = vec4(fragColor, 1.0) * texture(U_Texture, PS_TexCoord);
}

If the U_Texture binding is changed to 0 this works correctly, although my understanding is this is against Vulkan spec as each uniform binding should be unique (the vertex shader (not shown) is also using binding 0 for other uniform data).
The really weird thing is that the Cube demo also seems to use the same mapping as above (uniform struct on binding 0 and texture sampler on binding 1 - see demo_prepare_descriptor_layout). However, if you output the converted MSL code for the Cube fragment shader you get the following:
#include <metal_stdlib>
#include <simd/simd.h>

using namespace metal;

struct main0_out
{
    float4 uFragColor [[color(0)]];
};

struct main0_in
{
    float4 texcoord [[user(locn0)]];
    float3 frag_pos [[user(locn1)]];
};

fragment main0_out main0(main0_in in [[stage_in]], texture2d<float> tex [[texture(0)]], sampler texSmplr [[sampler(0)]])
{
    main0_out out = {};
    float3 dX = dfdx(in.frag_pos);
    float3 dY = dfdy(in.frag_pos);
    float3 normal = normalize(cross(dX, dY));
    float light = fast::max(0.0, dot(float3(0.424, 0.566, 0.707), normal));
    out.uFragColor = tex.sample(texSmplr, in.texcoord.xy) * light;
    return out;
}

As you can see, the final code for the cube demo fragment shader is using texture binding 0 even though the code is expecting it to use binding 1 - yet it still works!
What's even weirder is that if I take the "estimated" GLSL code that is also output..
#version 400
#ifdef GL_ARB_shading_language_420pack
#extension GL_ARB_shading_language_420pack : require
#endif
#extension GL_ARB_separate_shader_objects : require

layout(set = 0, binding = 1) uniform sampler2D tex;

layout(location = 1) in vec3 frag_pos;
layout(location = 0) out vec4 uFragColor;
layout(location = 0) in vec4 texcoord;

void main()
{
    vec3 dX = dFdx(frag_pos);
    vec3 dY = dFdy(frag_pos);
    vec3 normal = normalize(cross(dX, dY));
    float light = max(0.0, dot(vec3(0.424, 0.566, 0.707), normal));
    uFragColor = texture(tex, texcoord.xy) * light;
}

..and then convert it back to MSL using MoltenVKShaderConverter..
#include <metal_stdlib>
#include <simd/simd.h>

using namespace metal;

struct main0_out
{
    float4 uFragColor [[color(0)]];
};

struct main0_in
{
    float4 texcoord [[user(locn0)]];
    float3 frag_pos [[user(locn1)]];
};

fragment main0_out main0(main0_in in [[stage_in]], texture2d<float> tex [[texture(1)]], sampler texSmplr [[sampler(1)]])
{
    main0_out out = {};
    float3 dX = dfdx(in.frag_pos);
    float3 dY = dfdy(in.frag_pos);
    float3 normal = normalize(cross(dX, dY));
    float light = fast::max(0.0, dot(float3(0.4239999949932098388671875, 0.5659999847412109375, 0.7070000171661376953125), normal));
    out.uFragColor = tex.sample(texSmplr, in.texcoord.xy) * light;
    return out;
}

..then texture binding 1 is now used! Unless I'm really misunderstanding something (quite possible!), it seems that MoltenVK has a bug that causes textures to always be bound to slot 0, and that the demo has a separate bug that causes the output metal code to be incorrectly bound to slot 0 (even though slot 1 was specified), and these two bugs cancel each other out allowing the Cube demo to run.

I'm running into some further weirdness on this. If I do this in my vertex shader (written in GLSL):
layout (std140, push_constant) uniform TTerrainPushConstants
{
    mat4 MTransform;
    vec4 TexCoordOffset;
} pushConstants;

layout (std140, binding = 2) uniform TGlobalUBO
{
    mat4 PVTransform;
    vec4 CameraPos;
} globalUBO;

..then I get this in for my params in the converted metal code:
vertex main0_out main0(main0_in in [[stage_in]], constant TTerrainPushConstants& pushConstants [[buffer(0)]], constant TGlobalUBO& globalUBO [[buffer(2)]])
..which seems reasonable. However, metal validation fails at runtime with:
validateFunctionArguments:3469: failed assertion Vertex Function(main0): missing buffer binding at index 2 for globalUBO[0].
I am setting VkDescriptorSetLayoutCreateInfo as follows:
VkDescriptorSetLayoutBinding bindings_2tex_ubo[3] =
{
    { // Sampler
        .binding = 0,
        .descriptorCount = 1,
        .descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
        .pImmutableSamplers = NULL,
        .stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT,
    },
    { // Sampler
        .binding = 1,
        .descriptorCount = 1,
        .descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
        .pImmutableSamplers = NULL,
        .stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT,
    },
    { // UBO
        .binding = 2,
        .descriptorCount = 1,
        .descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
        .pImmutableSamplers = NULL,
        .stageFlags = VK_SHADER_STAGE_VERTEX_BIT,
    },
};

VkDescriptorSetLayoutCreateInfo setLayoutInfo_2tex_ubo =
{
    .sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO,
    .bindingCount = sizeof(bindings_2tex_ubo)/sizeof(bindings_2tex_ubo[0]),
    .pBindings = bindings_2tex_ubo,
};

Looking at the code, it seems that MVKDescriptorSetLayoutBinding::bind is where the binding is specified to metal. For a vertex stage uniform buffer for example, it seems to set bb.index as follows:
bb.index = mtlIdxs.vertexStage.bufferIndex + rezIdx;
This comes out to zero in the case of the uniform buffer above. I'm probably not understanding the code currently, but surely something like this would be more correct?
bb.index = descBinding._pBindingLayout->_info.binding;
(Doing this doesn't completely fix the issue here as molten also seems to be expecting the push constants to be at index 1, whereas they are at index 0 in the metal shader code so it fails validation on that too. If I then force the push constants to be at index 1 in the metal code then things work as normal. However, this obviously isn't a fix as I'm not sure how molten is supposed to know which index the push constants have been assigned to.)

@billhollings Some further info on this: it basically seems that MoltenVK goes wrong if the bindings with a vertex or fragment shader aren't sequential. Unfortunately, it doesn't seem to be valid to change them to each be sequential in this case as then you end up with a VkDescriptorSetLayoutBinding such as the following:
VkDescriptorSetLayoutBinding bindings_2tex_ubo[3] =
{
    { // Sampler
        .binding = 0,
        .descriptorCount = 1,
        .descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
        .pImmutableSamplers = NULL,
        .stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT,
    },
    { // Sampler
        .binding = 1,
        .descriptorCount = 1,
        .descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
        .pImmutableSamplers = NULL,
        .stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT,
    },
    { // UBO
        .binding = 0,
        .descriptorCount = 1,
        .descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER,
        .pImmutableSamplers = NULL,
        .stageFlags = VK_SHADER_STAGE_VERTEX_BIT,
    },
};

Of course, duplicate bindings like this aren't legal and MoltenVK unsurprisingly dies in vkUpdateDescriptorSets.

@billhollings Sorry to keep replying to myself, but I was wondering if this might be related to #459 as I am using precompiled metal code? Is it possible that molten isn't setting the indices correctly due to this?

I've now tested this without precompiled metal code and it works fine, so that's definitely the problem.
Maybe the shader converter should also output a file with additional metadata which should then be passed vkCreateShaderModule?

When compiling shaders at runtime, MoltenVK passes the Vulkan descriptor set binding info to SPIRV-Cross, which allows SPRIV-Cross to assign matching binding indices automatically.
When compiling shaders offline through spirv-cross...or the MoltenVKShaderConverter tool...that runtime binding info is not available, and so SPIRV-Cross defaults to incrementing the resource binding indices sequentially.
It sounds like this is what you are encountering.
When using pre-compiled Metal shaders, you'll have to manually ensure that the binding assignments line up for each pipeline compilation. Effectively, you need to plan that the descriptor set bindings are sequential and start at zero.

Surely SPIRV-Cross should just use the binding information in the shader code if none is specified? The main complication I can see is the push constants, which are currrently assigned starting at zero by SPIRV-Cross. If they were assigned starting from the the max valid index and descending (and molten was changed to expect this) then it seems that would allow precompiled code to work reliably?

To clarify, it seems that there are two seperate issues with bindings when using precompiled shaders:

If bindings are not sequential, SPIRV-Cross correctly converts the non-sequential bindings. However, because the shader was not compiled at runtime, molten assumes sequential bindings (in MVKDescriptorSetLayoutBinding::bind) and fails. If it just used the bindings that have been provided via vulkan as described above then it should work.

If push constants are used, SPIRV-Cross assigns them to the first free binding. This may clash with a binding used in a different shader, and is also somewhat unpredictable. If it defaulted to assigning it to the highest valid binding (assuming there's no performance impact to this?) then molten could be modified to automatically assign push constants to this binding.

SPIRV bindings include descriptor set and binding numbers. That needs to be translated to a single integer binding index in MSL. MoltenVK passes this mapping to SPIRV-Cross...but when converted offline...SPIRV-Cross just assigns the numbers sequentially.
It could be possible to assume a single descriptor set and assign them to the direct binding numbers. That would be another option. Or even to do some kind of standard algorithm...of consuming the first descriptor set and bindings and then appending further on top.
At present...MoltenVK performs the following MSL buffer assignments and passes them to SPIRV-Cross:

descriptor set buffers are bound to sequentially increasing MSL buffer indices, starting at zero.
push constants are bound to MSL index one above the highest bound descriptor set MSL index.
auxiliary buffers are bound to MSL indexes sequentially increasing from the push constants
vertex attributes are bound to sequentially decreasing MSL buffer indices, starting at the max (31).

Some of this design has been adaptive as features are added (eg. auxiliary buffers).
We could potentially move push constants and auxiliary buffers to either the bottom or top of the range...to static known buffer values...and then we could start numbering either descriptor bindings or vertex attributes starting beyond that static range.
@cdavis5e Any thoughts?

I just hit this today, hard.  Lost an hour sofar and counting.  No workaround in sight.

Is there any progress getting this fixed? Precompiled metal shaders aren't really useable until it is.

I tried to use precompiled msl shaders and hit this issue as well. The driver just crashes(sometimes bringing the whole system down with it).
I see the following problems that interfere with this task:

Docs/limitations dont mention anything on this issue. People will expect things to "just work", especially using the "special" MoltenVKShaderConverter.

MoltenVKShaderConverter doesn't have the same binding mapping logic as the runtime conversion.
It also doesn't output any reflection info unlike spirv-cross;
Actually spirv-cross may do better for the simple case as it has --msl-decoration-binding, but still has trouble with push constants/aux buffers getting duplicate msl binding (likely need CompilerMSL::get_metal_resource_index fixes and something similar to --msl-force-active-argument-buffer-resources but without argbufs).
Alternatively, at runtime MVK should use "default" spirv bindings for precompiled code.


Title

This is body message for CI test
Signed-off-by: Gichan Jang<EMAIL_ADDRESS>

INFO: You can read if there are misspelled characters at our misspelling check report. Please read http://nnstreamer.mooo.com/nntrainer-gichan/ci/repo-workers/pr-checker/1-202104192042000.55124497413635-cea296043413cb73e548200d45c6d3829e410fc1/report/misspelling_result.txt.

:octocat: cibot: Oooops. The administrator of CI server must install a debian package to support 'cov-build' command.

:octocat: cibot: Oooops. The administrator of CI server must install a debian package to support 'ndk-build' command.


Initial info.yaml for CI

Signed-off-by: Christopher Grote<EMAIL_ADDRESS>

@schannamallu  -- per https://github.com/odpi/ci-management/issues/118, can you please have a quick look and let me know if the info.yaml looks OK or has any obvious gaps / issues?


Create how-metrics-work.md

stealing from the data team's content for FK

🚀 Deployed on https://634ead186810a66704e51063--cozy-fox-0defec.netlify.app


when healthdata.gov adds columns, sort code deforms data

pandas doesn't like having fewer header columns than data columns.
.csv gets deformed after sort.

worked around problem, after some analysis, for now by adding 5 placeholder columns to the header.
commit: https://github.com/rrelyea/evusheld-locations-history/commit/457cf757ac5f7bc6ef4be16c8a91985b6605ec16

fixed for real by moving to different api to get csv, which comes with headers.
https://github.com/rrelyea/evusheld-locations-history/commit/e1605bec11b8e6dfe05a7c571241317213125920


Use explicit imports in our javascript source files

closes #36665
ref: #31944

hi, any particular reason why this is still a draft?

Yeah, this is something xo kept warning about in my xo branch, but never got to fix it myself. Thanks @GeoSot!

Has anyone tested this and confirmed it fixes the problems people mentioned? Just quickly reviewing some PRs here.

Has anyone tested this and confirmed it fixes the problems people mentioned? Just quickly reviewing some PRs here.

On my side I didn't manage to reproduce locally exactly the same behavior as what's described in the issue so I can't confirm with certitude that it fixes the issue. I think it does but not 100% certain.

Let's try it I guess since it doesn't look like it can cause any breakage.


context_getError still being exported

The dpi:context_getError API is still being offered, however it shouldn't be used as the error messages are getting mangled. Instead, dpiContext_getError is being called internally just as an error happens, which then causes the function to throw the correct error message. This error message should be used rather than getting an error message by calling dpiContext_getError.
dpi:context_getError should be removed. Currently, one eunit testcase called drop_nonexistent_table still uses it.

fixed in branch karl-eunit_cleanup_1

should be closed by PR merging

Please branch/PR seperately to master

Removed in https://github.com/K2InformaticsGmbH/oranif/commit/9412f9d66bb398e08264b708b97b1227c7eb83d8#diff-90afd8483b022beef28f6853c9ec7339


Highlight slice piece programmatically

I would like to be able to highlight the largest slice piece programmatically like it can be done when the user taps a piece. It would of course be best to make a general highlightSlice method with an index parameter so all pieces can be highlighted.
I have tried to fork the project, and added the following code.
// Finds the largest piece in the chart and changes its accent
- (void) highlightLargestPiece {
    VBPiePiece *largestPiece = nil;

    for (VBPiePiece *piece in _piecesArray) {
        if (largestPiece == nil || (largestPiece.data.value.doubleValue < piece.data.value.doubleValue)) {
            largestPiece = piece;
        }
    }

    if (largestPiece != nil) {
        [self togglePieceAccent:largestPiece];
    }
}

- (void) togglePieceAccent:(VBPiePiece *)piece {
    if (piece.accentPrecent < FLT_EPSILON) {
        [piece animateToAccent:_maxAccentPrecent];
    } else {
        [piece animateToAccent:0];
    }

Then i made the highlightLargestPiece public, but i somehow cannot call it from Swift - i get an unrecognized selector error, even though the code compiles.
The compiler is somehow recognizing the new method, but during runtime it apparently doesn't exist.
Does someone know what is wrong?

Anyone?

this is strange, will check later

I think this is outdated.


Roll engine a8890fdccd66..d29c7db769d1 (9 commits)

https://github.com/flutter/engine/compare/a8890fdccd66...d29c7db769d1
git log a8890fdccd66..d29c7db769d1 --no-merges --oneline
d29c7db76 Add logging if FlutterDartProject fails to load the application kernel snapshot (flutter/engine#6257)
2a1debfcc Update deprecated subtags from language subtag registry. (flutter/engine#6280)
540cd9626 Add Xib splashscreen support (flutter/engine#6289)
05f21e63a Fix a compilation problem when using iPhoneOS12.0sdk(Xcode10) && clang version 7.0.0. (flutter/engine#6279)
ca6f10389 Roll src/third_party/skia d842557c0724..c25f440d537e (10 commits) (flutter/engine#6304)
3b46705db Roll src/third_party/skia 38ca6d509d9f..d842557c0724 (5 commits) (flutter/engine#6302)
0c166fe3f Roll src/third_party/skia 05cf051f0252..38ca6d509d9f (1 commits) (flutter/engine#6301)
cf0fbadce Roll src/third_party/skia 44c6167c4125..05cf051f0252 (4 commits) (flutter/engine#6299)
2ec20aaeb Remove bottom safe-area padding when keyboard up (flutter/engine#6297)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

@rmistry @liyuqian : New roll has been created by https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Trybots failed. These were the failed builds: https://flutter-dashboard.appspot.com/build.html

Commit queue failed; closing this roll.


Paginator------jump to a specific page

Feature Description
Provide a brief summary of the feature you would like to see.
Hi, I would like to know how I can add a feature that jumps to a certain page on the paginator?
perhaps a dropdown list next to it which has the total pages allowing users to jump to a specific-numbered page?
Thank you !
Use Case
Describe the use case(s) that the proposed feature would enable.

Just noticed that this is a duplicate of https://github.com/angular/components/issues/7615.


Copy of Angular2-JWT

Hi,
This module and it's readme is an almost exact copy of angular-jwt package. Is there a reason that you have not mentioned that in the README?

Hi,
It's a rewrite of angular-jwt , without the jwt part , just as simple auth , you can checkout the source code if you like :).
It's my fault not mentioning the jwt 👍


Use Config Repo Contract.

It causes a conflict if the config repo is extended, starts throwing error. For example:
Argument 1 passed to SammyK\LaravelFacebookSdk\LaravelFacebookSdk::__construct() must be an instance of Illuminate\Config\Repository, instance of Orchestra\Config\Repository given, called in /../vendor/sammyk/laravel-facebook-sdk/src/LaravelFacebookSdk/LaravelFacebookSdkServiceProvider.php on line 45 and defined

This PR fixes this issue.

Any updates on when this PR will get merged?

@SammyK Can you  please merge this? Thanks!

@SammyK Yo! Can you please take a look at it. Been waiting for it for the past 1 month+ :disappointed:

Hey @irazasyed! Sorry for the delay on this. Client work always takes priority. :) We can't just rename this namespace since it's a breaking change. This is really a PR to add laravel 5.2 support so I'll need to create a new branch for this or get creative with how this dependency is resolved. I'm looking into this today and will give you an update with a solution. Thanks for hanging in there! :)

Actually I misunderstood what you were asking for originally. I've got a bunch of test environments set up locally to test this out and then I'll let you know if we can push this through. :)

Hey @irazasyed! Sorry for the delay on this. Client work always takes priority. :)

Hey @SammyK No problem. I can understand.

We can't just rename this namespace since it's a breaking change. This is really a PR to add laravel 5.2 support so I'll need to create a new branch for this or get creative with how this dependency is resolved. I'm looking into this today and will give you an update with a solution. Thanks for hanging in there! :)

It's just an interface aka contract and that's the recommended way of injecting a dependency. Works well with all Laravel versions. It's not a major breaking change nor it'll affect anyone from what i know. That's the reason why I sent a patch PR.

Actually I misunderstood what you were asking for originally. I've got a bunch of test environments set up locally to test this out and then I'll let you know if we can push this through. :)

I thought so. Sounds good. Will wait for your update then. Thanks!

Done & done! Sorry again for the delay. I also went ahead and updated the URL typehint to the appropriate interface as well. :)

PS - thanks very much for the PR! :)

No problem. Thanks for finally merging. I appreciate it :)


Styling input type=tel elements

Hello, sir!
Thank you for Skeleton. I've really enjoyed using it these past few weeks. Today I noticed that input elements of the type "tel" are not styled the same as text, email, and password input elements. It is likely that the tel type is used much more infrequently, but either Ruby on Rails 3.2, or the form builder library I am using in this project, generated an input[type="tel"] for a field called "phone", which makes good sense ultimately. I thought I'd add in the two lines it would take to get them styled similarly.
Thanks again!

I second this HTML5 input styling. However, it would be great to include all input types defined by the W3C (i.e. number, tel, email, url, datetime, date, week, time, etc. - http://www.w3.org/TR/html5/the-input-element.html).

As far as I can tell, only a subset of those listed are actually text fields, which is the target of this commit. In particular: tel, url, email, password, number, and (maybe) search. The others are different types of controls, and thus shouldn't be styled the same. Would you agree?
In any case, I'll add to the style to address the others. Hopefully we can get this pulled in to the main branch!


Breaks if missing alert track

A deep, deep thanks to EngineINK who managed to narrow down exactly how to replicate this issue.


Operational Discovery failed if  a node advertise A and AAAA records in the same time. Incorrect node address discovering.

Node address can't be discovered correctly if node publish both A and AAAA records. Commissioner build with disabled IPv4.
In case if commissioner build with enabled  IPv4 discovering works well.

expected behavior: A record should be ignored if IPv4 disabled
actual behavior: A record used to discover node address.
steps to reproduce: Pair a commissionee which advertise  both A and AAAA records and  chip-tool with disabled IPv4
most interesting part of a log:

[1648655043.939507][3664708:3664713] CHIP:TOO: Secure Pairing Success
[1648655043.939656][3664708:3664713] CHIP:DIS: Attempt to mDNS broadcast failed:  ../examples/chip-tool/third_party/connectedhomeip/src/inet/UDPEndPointImplSockets.cpp:417: OS Error 0x02000065: Network is unreachable
[1648655043.939694][3664708:3664713] CHIP:DMG: ICR moving to [AwaitingDe]
[1648655043.939711][3664708:3664713] CHIP:EM: Sending Standalone Ack for MessageCounter:3596501 on exchange 12808i
[1648655043.939789][3664708:3664713] CHIP:IN: Prepared secure message 0x7fb32e7fb070 to 0x0000000000000001 (1)  of type 0x10 and protocolId (0, 0) on exchange 12808i with MessageCounter:6735112.
[1648655043.939810][3664708:3664713] CHIP:IN: Sending encrypted msg 0x7fb32e7fb070 with MessageCounter:6735112 to 0x0000000000000001 (1) at monotonic time: 66917013 msec
[1648655043.939850][3664708:3664713] CHIP:EM: Flushed pending ack for MessageCounter:3596501 on exchange 12808i
[1648655043.940454][3664708:3664713] CHIP:DIS: Node ID resolved for 0x0000000000000001
[1648655043.940466][3664708:3664713] CHIP:DIS:     Addr 0: [::ffff:<IP_ADDRESS>]:5540
[1648655043.940477][3664708:3664713] CHIP:DIS:     Addr 1: [fe80::217:88ff:feb0:ba3]:5540
[1648655043.940488][3664708:3664713] CHIP:CTL: OperationalDiscoveryComplete for device ID 0x0000000000000001
[1648655043.940879][3664708:3664713] CHIP:IN: Generating DestinationID. Fabric ID 0x0000000000000001, Dest node ID 0x0000000000000001, Random data
...
[1648655043.941312][3664708:3664713] CHIP:CTL: Device connection failed. Error ../examples/chip-tool/third_party/connectedhomeip/src/inet/UDPEndPointImplSockets.cpp:417: OS Error 0x02000065: Network is unreachable
[1648655043.941327][3664708:3664713] CHIP:CTL: Failed to perform commissioning step 17
[1648655043.941338][3664708:3664713] CHIP:CTL: Rendezvous cleanup
[1648655043.941350][3664708:3664713] CHIP:TOO: Device commissioning Failure: ../examples/chip-tool/third_party/connectedhomeip/src/inet/UDPEndPointImplSockets.cpp:417: OS Error 0x02000065: Network is unreachable
[1648655043.941384][3664708:3664713] CHIP:CTL: Address resolved for node: 0x0000000000000001
[1648655043.941397][3664708:3664713] CHIP:CTL: OnNodeIdResolved was called for a device with no active sessions, ignoring it.
[1648655043.941514][3664708:3664708] CHIP:-: ../examples/chip-tool/third_party/connectedhomeip/src/inet/UDPEndPointImplSockets.cpp:417: OS Error 0x02000065: Network is unreachable at ../examples/chip-tool/commands/common/CHIPCommand.cpp:62
[1648655043.941546][3664708:3664708] CHIP:TOO: Run command failure: ../examples/chip-tool/third_party/connectedhomeip/src/inet/UDPEndPointImplSockets.cpp:417: OS Error 0x02000065: Network is unreachable

failed_discovery.log
Proposed Solution
Type A records should ignore if commissioner doesn't support IPv4.
Below you can see a simple fix for this issue.
--- a/src/lib/dnssd/Resolver_ImplMinimalMdns.cpp
+++ b/src/lib/dnssd/Resolver_ImplMinimalMdns.cpp
@@ -275,6 +275,7 @@ void PacketDataReporter::OnResource(ResourceType type, const ResourceData & data
         }
         break;
     case QType::A: {
+#if INET_CONFIG_ENABLE_IPV4
         Inet::IPAddress addr;
         if (!ParseARecord(data.GetData(), &addr))
         {
@@ -292,6 +293,7 @@ void PacketDataReporter::OnResource(ResourceType type, const ResourceData & data
                 OnDiscoveredNodeIPAddress(addr);
             }
         }
+#endif
         break;
     }
     case QType::AAAA: {

@AntonGrey could you validate that #17074 fixes your issue as well? I believe the bug is that parsing succeeds at all (it reaches into IPAddress class internals).

I confirm, #17074 fixes my issue. Thank you.


Unable to use repopack in ubuntu 20.04

Unable to use repopack in ubuntu 20.04
I install npm just by "sudo apt install npm", then either just run "npx repopack" or installed by npm then run "repopack", it get this error
(node:52216) UnhandledPromiseRejectionWarning: Error: Not supported
at /usr/local/lib/node_modules/repopack/bin/repopack.cjs:5:19
at Object. (/usr/local/lib/node_modules/repopack/bin/repopack.cjs:7:3)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
(node:52216) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
(node:52216) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

@beishanyangjin
I was able to run it on ubuntu 24.10 with no issues.  I don't know if it is specific to 20.04.
Check your node version.
The version I used was 23.0.0.
Also I did install it repopack with pnpm but this shoulnt impact the run repopack command from failing

Hi, @beishanyangjin !
Thank you for reporting.
The combination of Ubuntu 20.04 and Node.js 16 has passed our tests:
https://github.com/yamadashy/repomix/pull/155
The issue might be caused by either a lower Node.js version or some environment-specific condition. Could you please provide more detailed information about your environment, such as:

Your Node.js version (node --version)
Your OS version (output of lsb_release -a)
How you installed repomix (npm install -g, npx, etc.)

Got as well this UnhandledPromiseRejectionWarning: Error: Not supported
This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
node_modules/repopack/bin/repopack.cjs:5:19
node --version :  v10.19.0 # this is the version apt install nodejs gave. Feels far off from v23 🤔
Description:    Ubuntu 20.04.6 LTS
npm install -g repopack


schema_triggers not compatible with pg_stats_statements

if you try to load both at the same time postgres is not able to start

OK, it looks like pg_stats_statements is careful about allowing existing hooks to run, while pg_schema_triggers just errors out if someone has gotten to the hook before it has. As a first workaround, I would hope that loading pg_schema_triggers first would avoid the problem (and then pg_stats_statements would just happily delegate to it). I'll test this supposition and look at making pg_schema_triggers more friendly to other hooks.

Confirmed, this works
shared_preload_libraries = 'schema_triggers.so,pg_stat_statements.so'

and this does not
shared_preload_libraries = 'pg_stat_statements.so,schema_triggers.so'


Crash in debug mode on windows VC2017

Hi,
When I run the compiled program, it crashes in Debug mode with assert some
vector subscript out of range.
In imaging_compare.cpp, function FloodFill
for (auto point : points) {
// somewhere wherepush_back is done conditionally.
if (processed.getPixel(x, y) == FLOOD_NOT_PROCESSED) {
                    if (Dr::IsSameColor(start_color, bitmap.getPixel(x, y), tolerance)) {
                        points.push_back(DrPoint(x, y));
                        processed.setPixel(x, y, FLOOD_MARKED_FOR_PROCESS);
                        processed_some = true;
                    }
}

}
push_back will invalidate the iterators if there is reallocate of points
I added points.reserve(500) to prevent the reallocation & it ran correctly.
Alternatively a while loop with accessing points by index instead.
P.S: Is there any version of  Visual Studio / c++ should I be using?
My compiler does not seem to recognize  .path initialization etc.
I had to changed to that below.
/* sfetch_request_t (sokol_fetch_font) {
.path = font_file.c_str(),
.callback = font_normal_loaded,
.buffer_ptr = state.font_normal_data,
.buffer_size = sizeof(state.font_normal_data)
};*/
sfetch_request_t sokol_fetch_font = { 0 };
sokol_fetch_font.path = font_file.c_str();
sokol_fetch_font.callback = font_normal_loaded;
sokol_fetch_font.buffer_ptr = state.font_normal_data;
sokol_fetch_font.buffer_size = sizeof(state.font_normal_data);
Regards,
Eugene

Thanks for the feedback! Great catch on the invalidated iterator! I have updated the FloodFill function.
Some of the Sokol structs were being initialized using a newer syntax officially implemented in c++20 (https://en.cppreference.com/w/cpp/language/aggregate_initialization ... see 3 & 4 in Syntax table). I've been building on a mac with gcc and never had a problem compiling, even though I'm targeting c++11. Seems different compilers have added this at different times. I have changed all instances for better compatibility.
I fired up my old Windows 10 machine and installed visual studio 19 community to check for other issues. There were a couple but it should now be building and running successfully on Windows.

Ah ... c++20.
I am stuck with Visual Studio 2017.
Had to make some changes.

//added cklee for std::isdigit in string.h
#include
//added cklee remove static causes compiler out of heap space
//static state_t state;
state_t state;

I didnt really dwell deeper into the cause as my interest lies with the result of the extrusion as I am writing out in obj.
Is it possible to isolate the different objects as separate meshes?

Okay, I downloaded Visual Studio 2017 (just grabbed the latest build, 15.9) to check for any problems. I resolved a couple issues and everything is building with cmake and running nice.
I also made changes to the DrMesh class so that meshes are created separately from the different objects found within the image. Now, in the demo, as the objects are processed, the separate meshes are stored in a std::vector called 'meshes'.
As far as creating obj files, that is currently out of the scope of this demo. But, in case you did try to to export the objects yourself, I did add a simple feature to adjust the depth. It could be helpful before you export. The depth of the objects can be adjusted while the demo is running by pressing the -/+ keys (also note, the quality of the object can be adjusted using the number keys).

That's some fast work! Thanks for the separate meshes.
That's fine . I meant I was already writing out obj when I saw all the meshes together.
Regards

No problem... Okay great! I'm glad you're getting some use out of this, hopefully it's been helpful. Thanks again for the feedback. I'm going to mark this issue closed for now.
Stephens


MSSQL: fix tests

Q
A

Is bugfix?
✔

New feature?
❌

Breaks BC?
❌

Tests pass?
✔

Fixed issues

Merged. Thank you very much!


Protobuf SerDes support

Question: How well does it work with more complex Protobuf types like Enums? E.g., Enum can be deserialized as enum.Enum and as an int.
Do we cover that?

There is an argument for it that we should expose, use_integers_for_enums.

I think new serdes classes need to be imported and added to SERIALIZERS and DESERIALIZERS maps in quixstreams.models.serializers.__init__

We don't want to do it for protobuf since it needs an extra import. Importing it in quixstreams.models.serializers.__init__ would raise an ImportError due to the possibly missing dependencies. We could catch the error and skip it but iirc we decided against it


Add github actions release workflow

setting up standard release workflows
will be taking a lot from adapters & core
release as python package with standard CI checks
if we use hatch, may need to redo some of the workflows (refactoring a step in the pipeline)

Blocked on https://github.com/dbt-labs/dbt-common/issues/10 & #6

Will roll into https://github.com/dbt-labs/dbt-common/issues/5


Transition between terrain types inside category

Hi,
I'm using your great plugin for my 2D game. It helped me a lot, especially categories functionality. I have a question tho - is there a way to make some smooth transition between terrains in category? I mean for example in case from your video tutorial - two types of blobs, one yellow, other one pink and let's say I would like to make some smooth transition when one terrain changes into another, like gradient.
Best regards,
Paweł

Do you have an example tileset you would use for this? There are a number of ways of doing it. For example, the yellow blobs could have some tiles with a pink gradient edge, and then it could be set up to place those in bordering cells.
Remember even if two terrains share a category and can connect with that, you can still use specific connectors too. So you can have a tile that connects to the 'blob' category (either yellow or pink) on some edges, but only connects to, say, the yellow blob on another edge.

Thanks a lot! I think I understand, more or less ;) I'm pretty fresh in Godot, so I will need to figure it out, but it's enough to know that it's possible with this plugin :) I'm trying to create river, with different levels of depth, each depth with slightly brighter color. I'm using some standard tileset, I will need to modify to my needs for sure.

So there's a number of ways to approach this. I would not attempt to draw connections between every tile type, because very rapidly you will need hundreds of different tiles. Instead I would use as many tricks as possible to build up a scene with very little effort. Here's an example using 32 tiles only.
https://github.com/Portponky/better-terrain/assets/33663279/9865b570-d3c2-445f-9466-6efe8910c18a
First of all I'd use layers. Layering gives you really cheap tile composition and it is one of the most powerful tools you have. Here I have a ColorRect for a general water colour in the background. The tilemap has two water layers which are modulated with different kinds of transparent blue. The water tiles are white, so they only become blue when placed in this layer. This allows me to use the same tiles in different contexts (e.g. swamp, lava, etc..). On top of that there is a 'ground' layer, which contains the grass as well as some animated waves for the water. Animation always makes a game world seem more alive.
Next up, I've used the symmetry tools to reduce the number of tiles needed. No need to copy paste tiles and rotate/mirror them in the editor, we can do that automatically. I forgot to show them in the video but here's the water symmetry setup:

For the ground, I kept it simple and used decorations for the borders. That puts a shoreline around every grass tile I place. That means I can focus on making interesting grass tiles without having to make tons of different shorelines. For the example I got pretty lazy and just used one grass tile, and used symmetry again for the shorelines. In practice you might not want to use symmetry for the shorelines, as you might have specific graphical detail that makes them distinct.
Note that the edges of the scene are untidy, but that really doesn't matter. If it's offscreen and the player never sees it, it doesn't matter at all.
So this is an example of how I would build up this kind of scene. It's all about combining different tools and effects. Terrain is useful, but it is only one of these tools. Hope this helps.

Thanks a lot! This is massively helpful!


Appropriately recognizing DRGs 98X (Procedure Unrelated to Primary Diagnosis)

This is awesome repo and much easier to implement than generating batch input for the MCE, but I've found a couple issues as compared to the official CMS logic. The most frequent issue we have encountered is inappropriate assignment (or rather lack thereof) to DRGs 981-983 and 987-989. It seems that with the current logic if the grouper finds a diagnosis that matches a DRG and sees that the procedures do not correspond to any DRGs directly related to that diagnosis, it ignores the procedures and returns a DRG just based on diagnosis codes. However, the correct logic would be to check if the unrelated procedure codes qualify for DRGs in the 98X range.
Example:

DRGpy = Seizure + Coronary intervention --> DRG 101
MSDRG/MCE = Seizure + Coronary intervention --> DRG 983

I am working on implementing a fix for this and several other errors we've run into (handling many dx codes appropriately, deceased patient, minor misses for some DRGs), but the program logic is a bit opaque at times so we're not sure where it would be most efficient to add this reasoning. Would be interested in hearing what you'd recommend

@jrincon-hekking I pushed a new branch, and I think the new version should address the issue you found. I will close the issue for now, and let us know if you still see the same issue. Thanks!


[CPU] Lowering config mix-up between generic op and pack op

The following dispatch has a generic op and a pack op which end up with significantly different lowering configs.
#executable_target_system_elf_x86_64_ = #hal.executable.target<"llvm-cpu", "system-elf-x86_64", {cpu = "cascadelake", cpu_features = "+cmov,+mmx,+popcnt,+sse,+sse2,+sse3,+ssse3,+sse4.1,+sse4.2,+avx,+avx2,+fma,+avx512f,+bmi,+bmi2,+aes,+pclmul,+avx512vl,+avx512bw,+avx512dq,+avx512cd,+avx512vnni,+adx,+clflushopt,+clwb,+cx16,+cx8,+crc32,+f16c,+fsgsbase,+fxsr,+invpcid,+lzcnt,+movbe,+pku,+prfchw,+rdrnd,+rdseed,+sahf,+x87,+xsave,+xsavec,+xsaveopt,+xsaves,+evex512", data_layout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", link_embedded = false, native_vector_size = 64 : index, target_triple = "x86_64-unknown-linux-gnu", ukernels = true}>
#map = affine_map<(d0, d1, d2) -> (d2, d0, d1)>
#map1 = affine_map<(d0, d1, d2) -> (d0, d1, d2)>
#pipeline_layout = #hal.pipeline.layout<push_constants = 1, sets = [<0, bindings = [<0, storage_buffer, ReadOnly>, <1, storage_buffer>]>]>
#device_target_llvm_cpu = #hal.device.target<"llvm-cpu", {executable_targets = [#executable_target_system_elf_x86_64_]}>
module attributes {hal.device.targets = [#device_target_llvm_cpu]} {
  hal.executable public @main_dispatch_178 {
    hal.executable.variant public @system_elf_x86_64, target = #executable_target_system_elf_x86_64_ {
      hal.executable.export public @main_dispatch_178_generic_1x256x5120_f32 ordinal(0) layout(#pipeline_layout) {
      ^bb0(%arg0: !hal.device):
        %x, %y, %z = flow.dispatch.workgroup_count_from_slice
        hal.return %x, %y, %z : index, index, index
      }
      builtin.module {
        func.func @main_dispatch_178_generic_1x256x5120_f32() {
          %cst = arith.constant 0.000000e+00 : f32
          %c9482304 = arith.constant 9482304 : index
          %0 = hal.interface.constant.load[0] : i32
          %1 = arith.index_castui %0 : i32 to index
          %2 = hal.interface.binding.subspan set(0) binding(0) type(storage_buffer) alignment(64) offset(%1) flags(ReadOnly) : !flow.dispatch.tensor<readonly:tensor<5120x1x256xf32>>
          %3 = hal.interface.binding.subspan set(0) binding(1) type(storage_buffer) alignment(64) offset(%c9482304) : !flow.dispatch.tensor<writeonly:tensor<1x320x256x16x1xf32>>
          %4 = flow.dispatch.tensor.load %2, offsets = [0, 0, 0], sizes = [5120, 1, 256], strides = [1, 1, 1] : !flow.dispatch.tensor<readonly:tensor<5120x1x256xf32>> -> tensor<5120x1x256xf32>
          %5 = tensor.empty() : tensor<1x320x256x16x1xf32>
          %6 = tensor.empty() : tensor<1x256x5120xf32>
          %7 = linalg.generic {indexing_maps = [#map, #map1], iterator_types = ["parallel", "parallel", "parallel"]} ins(%4 : tensor<5120x1x256xf32>) outs(%6 : tensor<1x256x5120xf32>) {
          ^bb0(%in: f32, %out: f32):
            linalg.yield %in : f32
          } -> tensor<1x256x5120xf32>
          %pack = tensor.pack %7 padding_value(%cst : f32) outer_dims_perm = [0, 2, 1] inner_dims_pos = [2, 1] inner_tiles = [16, 1] into %5 : tensor<1x256x5120xf32> -> tensor<1x320x256x16x1xf32>
          flow.dispatch.tensor.store %pack, %3, offsets = [0, 0, 0, 0, 0], sizes = [1, 320, 256, 16, 1], strides = [1, 1, 1, 1, 1] : tensor<1x320x256x16x1xf32> -> !flow.dispatch.tensor<writeonly:tensor<1x320x256x16x1xf32>>
          return
        }
      }
    }
  }
}

The generic op has a lowering config with [[0, 64, 64], [0, 8, 16], [0, 0, 0], [0, 0, 0]] and the pack op [[0, 4, 64], [0, 1, 8], [0, 0, 0], [1, 1, 1]]
module {
  func.func @main_dispatch_178_generic_1x256x5120_f32() {
    %c256 = arith.constant 256 : index
    %c320 = arith.constant 320 : index
    %cst = arith.constant 0.000000e+00 : f32
    %c9482304 = arith.constant 9482304 : index
    %0 = hal.interface.constant.load[0] : i32
    %1 = arith.index_castui %0 : i32 to index
    %2 = hal.interface.binding.subspan set(0) binding(0) type(storage_buffer) alignment(64) offset(%1) flags(ReadOnly) : !flow.dispatch.tensor<readonly:tensor<5120x1x256xf32>>
    %3 = hal.interface.binding.subspan set(0) binding(1) type(storage_buffer) alignment(64) offset(%c9482304) : !flow.dispatch.tensor<writeonly:tensor<1x320x256x16x1xf32>>
    %workgroup_id_x = hal.interface.workgroup.id[0] : index
    %workgroup_count_x = hal.interface.workgroup.count[0] : index
    %workgroup_id_y = hal.interface.workgroup.id[1] : index
    %workgroup_count_y = hal.interface.workgroup.count[1] : index
    %4 = affine.apply affine_map<()[s0] -> (s0 * 4)>()[%workgroup_id_y]
    %5 = affine.apply affine_map<()[s0] -> (s0 * 4)>()[%workgroup_count_y]
    scf.for %arg0 = %4 to %c320 step %5 {
      %6 = affine.apply affine_map<()[s0] -> (s0 * 64)>()[%workgroup_id_x]
      %7 = affine.apply affine_map<()[s0] -> (s0 * 64)>()[%workgroup_count_x]
      scf.for %arg1 = %6 to %c256 step %7 {
        %8 = flow.dispatch.tensor.load %3, offsets = [0, %arg0, %arg1, 0, 0], sizes = [1, 4, 64, 16, 1], strides = [1, 1, 1, 1, 1] : !flow.dispatch.tensor<writeonly:tensor<1x320x256x16x1xf32>> -> tensor<1x4x64x16x1xf32>
        %9 = affine.apply affine_map<(d0) -> (d0 * 16)>(%arg0)
        %10 = flow.dispatch.tensor.load %2, offsets = [%9, 0, %arg1], sizes = [64, 1, 64], strides = [1, 1, 1] : !flow.dispatch.tensor<readonly:tensor<5120x1x256xf32>> -> tensor<64x1x64xf32>
        %11 = tensor.empty() : tensor<1x64x64xf32>
        %12 = linalg.generic {indexing_maps = [affine_map<(d0, d1, d2) -> (d2, d0, d1)>, affine_map<(d0, d1, d2) -> (d0, d1, d2)>], iterator_types = ["parallel", "parallel", "parallel"]} ins(%10 : tensor<64x1x64xf32>) outs(%11 : tensor<1x64x64xf32>) attrs =  {lowering_config = #iree_codegen.lowering_config<tile_sizes = [[0, 64, 64], [0, 8, 16], [0, 0, 0], [0, 0, 0]]>} {
        ^bb0(%in: f32, %out: f32):
          linalg.yield %in : f32
        } -> tensor<1x64x64xf32>
        %pack = tensor.pack %12 padding_value(%cst : f32) outer_dims_perm = [0, 2, 1] inner_dims_pos = [2, 1] inner_tiles = [16, 1] into %8 {lowering_config = #iree_codegen.lowering_config<tile_sizes = [[0, 4, 64], [0, 1, 8], [0, 0, 0], [1, 1, 1]]>} : tensor<1x64x64xf32> -> tensor<1x4x64x16x1xf32>
        flow.dispatch.tensor.store %pack, %3, offsets = [0, %arg0, %arg1, 0, 0], sizes = [1, 4, 64, 16, 1], strides = [1, 1, 1, 1, 1] : tensor<1x4x64x16x1xf32> -> !flow.dispatch.tensor<writeonly:tensor<1x320x256x16x1xf32>>
      }
    }
    return
  }
}

If the pack op is the root op for this dispatch, we should either propagate/infer the lowering config of the generic op from the pack op's one. Currently, both lowering configs seem incompatible, even at distribution level ([0, 64, 64] vs [0, 4, 64]), and at vectorization level we end up tiling the loop by [0, 1, 8] for vectorization and vectorizing the generic op with [0, 8, 16]. This generates a masked store for the generic op that can't be forwarded to the load of the pack op.
I would suggest that we do not generate a lowering config for the generic op for this case and then we try to generate the right one inferred from the pack op values.

cc: @hanhanW, @pzread

IIUC at distribution level [0, 64, 64] vs [0, 4, 64] are compatible as the pack op is using 16x1 tile, so [0, 4, 64] on pack op means the actual input slice of [0, 64, 64].
However [0, 8, 16] vs [0, 1, 8] are not compatible. I'll need to check what the problem is there.

After checking the code, [0, 8, 16] vs [0, 1, 8] is also compatible because the pack op has a permutation on outer dims, so after the permutation it is [0, 8, 16] vs [0, 8, 1].
The root cause is that Pack op sets its own tiling config [1, 1, 1] at https://github.com/openxla/iree/blob/02e16252bf6553e5222ce578bfc93815abd85b9c/compiler/src/iree/compiler/Codegen/LLVMCPU/KernelDispatch.cpp#L2327. Later when we are doing the tile-and-fuse, since tileSizesList[3] is considered as fusable tiling config:
https://github.com/openxla/iree/blob/02e16252bf6553e5222ce578bfc93815abd85b9c/compiler/src/iree/compiler/Codegen/Common/TileSizeSelection.cpp#L94-L97
We tile-and-fuse the generic op based on pack op's special tiling sizes [1, 1, 1]. This is why we are seeing the generic op is tiled with [1,  1, 16] (it comes from [1, 1, 1]  with 1x16 pack op's inner tile) instead of [0, 8, 16] on the vector level in the example:
// -----// IR Dump After LLVMCPUTileAndFuse (iree-llvmcpu-tile-and-fuse) //----- //
func.func @main_dispatch_178_generic_1x256x5120_f32() {
  %c8 = arith.constant 8 : index
  %c64 = arith.constant 64 : index
  %c4 = arith.constant 4 : index
  %c1 = arith.constant 1 : index
  %c0 = arith.constant 0 : index
  %c256 = arith.constant 256 : index
  %c320 = arith.constant 320 : index
  %cst = arith.constant 0.000000e+00 : f32
  %c9482304 = arith.constant 9482304 : index
  %0 = hal.interface.constant.load[0] : i32
  %1 = arith.index_castui %0 : i32 to index
  %2 = hal.interface.binding.subspan set(0) binding(0) type(storage_buffer) alignment(64) offset(%1) flags(ReadOnly) : !flow.dispatch.tensor<readonly:tensor<5120x1x256xf32>>
  %3 = hal.interface.binding.subspan set(0) binding(1) type(storage_buffer) alignment(64) offset(%c9482304) : !flow.dispatch.tensor<writeonly:tensor<1x320x256x16x1xf32>>
  %workgroup_id_x = hal.interface.workgroup.id[0] : index
  %workgroup_count_x = hal.interface.workgroup.count[0] : index
  %workgroup_id_y = hal.interface.workgroup.id[1] : index
  %workgroup_count_y = hal.interface.workgroup.count[1] : index
  %4 = affine.apply affine_map<()[s0] -> (s0 * 4)>()[%workgroup_id_y]
  %5 = affine.apply affine_map<()[s0] -> (s0 * 4)>()[%workgroup_count_y]
  scf.for %arg0 = %4 to %c320 step %5 {
    %6 = affine.apply affine_map<()[s0] -> (s0 * 64)>()[%workgroup_id_x]
    %7 = affine.apply affine_map<()[s0] -> (s0 * 64)>()[%workgroup_count_x]
    scf.for %arg1 = %6 to %c256 step %7 {
      %8 = flow.dispatch.tensor.load %3, offsets = [0, %arg0, %arg1, 0, 0], sizes = [1, 4, 64, 16, 1], strides = [1, 1, 1, 1, 1] : !flow.dispatch.tensor<writeonly:tensor<1x320x256x16x1xf32>> -> tensor<1x4x64x16x1xf32>
      %9 = affine.apply affine_map<(d0) -> (d0 * 16)>(%arg0)
      %10 = flow.dispatch.tensor.load %2, offsets = [%9, 0, %arg1], sizes = [64, 1, 64], strides = [1, 1, 1] : !flow.dispatch.tensor<readonly:tensor<5120x1x256xf32>> -> tensor<64x1x64xf32>
      %11 = scf.for %arg2 = %c0 to %c4 step %c1 iter_args(%arg3 = %8) -> (tensor<1x4x64x16x1xf32>) {
        %12 = scf.for %arg4 = %c0 to %c64 step %c8 iter_args(%arg5 = %arg3) -> (tensor<1x4x64x16x1xf32>) {
          %13 = affine.apply affine_map<(d0) -> (d0 * 16)>(%arg2)
          %extracted_slice = tensor.extract_slice %10[%13, 0, %arg4] [16, 1, 8] [1, 1, 1] : tensor<64x1x64xf32> to tensor<16x1x8xf32>
          %extracted_slice_0 = tensor.extract_slice %arg5[0, %arg2, %arg4, 0, 0] [1, 1, 8, 16, 1] [1, 1, 1, 1, 1] : tensor<1x4x64x16x1xf32> to tensor<1x1x8x16x1xf32>
          %14 = scf.for %arg6 = %c0 to %c8 step %c1 iter_args(%arg7 = %extracted_slice_0) -> (tensor<1x1x8x16x1xf32>) {
            %extracted_slice_1 = tensor.extract_slice %extracted_slice[0, 0, %arg6] [16, 1, 1] [1, 1, 1] : tensor<16x1x8xf32> to tensor<16x1x1xf32>
            %15 = tensor.empty() : tensor<1x1x16xf32>
            %16 = linalg.generic {indexing_maps = [affine_map<(d0, d1, d2) -> (d2, d0, d1)>, affine_map<(d0, d1, d2) -> (d0, d1, d2)>], iterator_types = ["parallel", "parallel", "parallel"]} ins(%extracted_slice_1 : tensor<16x1x1xf32>) outs(%15 : tensor<1x1x16xf32>) attrs =  {lowering_config = #iree_codegen.lowering_config<tile_sizes = [[0, 64, 64], [0, 8, 16], [0, 0, 0], [0, 0, 0]]>} {
            ^bb0(%in: f32, %out: f32):
              linalg.yield %in : f32
            } -> tensor<1x1x16xf32>
            %extracted_slice_2 = tensor.extract_slice %arg7[0, 0, %arg6, 0, 0] [1, 1, 1, 16, 1] [1, 1, 1, 1, 1] : tensor<1x1x8x16x1xf32> to tensor<1x1x1x16x1xf32>
            %pack = tensor.pack %16 padding_value(%cst : f32) outer_dims_perm = [0, 2, 1] inner_dims_pos = [2, 1] inner_tiles = [16, 1] into %extracted_slice_2 {lowering_config = #iree_codegen.lowering_config<tile_sizes = [[0, 4, 64], [0, 1, 8], [0, 0, 0], [1, 1, 1]]>} : tensor<1x1x16xf32> -> tensor<1x1x1x16x1xf32>
            %inserted_slice_3 = tensor.insert_slice %pack into %arg7[0, 0, %arg6, 0, 0] [1, 1, 1, 16, 1] [1, 1, 1, 1, 1] : tensor<1x1x1x16x1xf32> into tensor<1x1x8x16x1xf32>
            scf.yield %inserted_slice_3 : tensor<1x1x8x16x1xf32>
          }
          %inserted_slice = tensor.insert_slice %14 into %arg5[0, %arg2, %arg4, 0, 0] [1, 1, 8, 16, 1] [1, 1, 1, 1, 1] : tensor<1x1x8x16x1xf32> into tensor<1x4x64x16x1xf32>
          scf.yield %inserted_slice : tensor<1x4x64x16x1xf32>
        }
        scf.yield %12 : tensor<1x4x64x16x1xf32>
      }
      flow.dispatch.tensor.store %11, %3, offsets = [0, %arg0, %arg1, 0, 0], sizes = [1, 4, 64, 16, 1], strides = [1, 1, 1, 1, 1] : tensor<1x4x64x16x1xf32> -> !flow.dispatch.tensor<writeonly:tensor<1x320x256x16x1xf32>>
    }
  }
  return
}

I think it comes down to the complexity introduced in setLoweringConfigForComputeOps. It seems like we are trying to set accurate lowering configs on all compute ops. But when we are doing tile-and-fuse from some ops with their special tile sizes, the tile sizes are also applied to the fused ops and result in mismatches between those fused ops and their tiling configs.
@hanhanW do you have some ideas on how we can solve this issue? IIUC we want the lowering config on each op to be accurate because they are used in the vectorization stage to decide vector size: https://github.com/openxla/iree/blob/02e16252bf6553e5222ce578bfc93815abd85b9c/compiler/src/iree/compiler/Codegen/Common/GenericVectorization.cpp#L132
I feel like if we want to keep lowering config accurate on each op, in setLoweringConfigForComputeOps we should only set tiling sizes on a single op at each fusable tiling level. Then for the reduction level we can set different tiling sizes for each op based on their reduction dims.


Request for Access to Anomaly Detection Code

Your work has been incredibly insightful, and I believe it could greatly assist my current research.
I am particularly interested in the anomaly detection component of your project. I have reviewed the documentation and code available in the repository, but I am unable to locate the specific code pertaining to anomaly detection. It would be immensely helpful for my studies if I could access this part of the code. Would it be possible for you to provide me with the anomaly detection code or guide me on how to access it?

For anomaly detection experiments, we used the same code in https://github.com/DAMO-DI-ML/NeurIPS2023-One-Fits-All/tree/main/Anomaly_Detection  but replaced the model with ours.


fix: update to eye v9.6.3

fix: update to eye v9.6.3

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

npm package (@latest dist-tag)
GitHub release
v12.3.3

Your semantic-release bot :package::rocket:


Display basic stats in a view

I was thinking to implement the stats page from https://stats.founntain.dev

These 9 options should be visible on the view. Preferably in the same grid as well.
The birthday is for optional for now.
The stats are requested from 3 URLs:

https://osuplayer.founntain.dev/api/statistics/getApiStatisticsV2 (to get the stats for the first 6)
https://osuplayer.founntain.dev/api/beatmaps/getBeatmapsCount (get's the amount of beatmaps)
https://osuplayer.founntain.dev/api/osuplayer/getStorageAmount (the database disk space used and displayed)

The task would be to add (statistics endpoint) / expand for the Api in the Network project.
Load all data when the view is loaded and display it via bindings, as done in all the other views / viewmodels.

This issue is currently tackled by @wrac4242


Add prop to enable adding custom classes to days based on days date

This adds dayClassName prop. This can be set to function which gets called for each day of rendered calendar. Function can return any object supported by classnames utility and it will be added to classnames of that day. Function gets rendered day's date as an argument.
This for example enables completely custom highlighting without the need to specify highlighted days upfront.
If function returns undefined, no class is added.

Codecov Report

Merging #835 into master will decrease coverage by 0.11%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #835      +/-   ##
==========================================
- Coverage   85.89%   85.78%   -0.12%
==========================================
  Files          12       12
  Lines         645      647       +2
  Branches      120      121       +1
==========================================
+ Hits          554      555       +1
- Misses          7        8       +1
  Partials       84       84

Impacted Files
Coverage Δ

src/week.jsx
70.83% <ø> (+1.26%)
:arrow_up:

src/calendar.jsx
86.95% <ø> (-0.77%)
:arrow_down:

src/month.jsx
82.6% <ø> (-0.38%)
:arrow_down:

src/datepicker.jsx
91.77% <ø> (+0.21%)
:arrow_up:

src/day.jsx
89.7% <100%> (-0.44%)
:arrow_down:

Continue to review full report at Codecov.

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

This is exactly what we need in advanced usage. I would like to request, it will be really helpful if we can merge #835 soon.

@martinek Please avoid committing changes to build outputs like docs-site/bundle.js. It creates needless conflicts.
Other than that, this looks good.

Big Thanks ! 👍 💯

@martinek example in docs is not very clear for myself is there any chance you can explain to me how for example you would give a class depending on previous button click.
Let say you have three buttons "red" "green" and "blue" and depending on chosen button you would give className to a perticular day - .react-datepicker__day-green or .react-datepicker__day-red or .react-datepicker__day-blue. Everytime you click on a different day you have an option to click a button which change color of that day in datepicker.
Thanks in advance

Well, you would have to somehow build up and object where you would store which day is which color. Then you would use something like
dayClassName={date => dayColors[date]}

In dayColors you would have something along
dayColors = {
    '09-10-2017': 'red',
    '10-10-2017': 'blue'
}

or something like that

@martinek first of all thanks for your help.
I tried to do it like you said unfortunately without success. Any other ideas? I thought maybe date format should be different but I tried many things and still doesn't work.

Here is a working example that should help you out:
https://codesandbox.io/s/825l6m0zr2?module=%2FExample.js

@martinek thanks a lot for your patience and apologies for beeing pain in the ass :)
Do you think it is possible to keep those "coloured dates" in database and render datepicker with days already coloured (accordingly to data fetched from db)? plus add new on click, like you did with state?

I think I know how to do it. I will keep the data in db than on componentWillReceiveProps I will setState with date + colour. Em I right?

My concern is also this bit
<style dangerouslySetInnerHTML={{__html:
.red { color: red }
.green { color: green }
.blue { color: blue }
}} />
How would I use it if I fetch data from DB? instead of clicking

@martinek would you be able to help me?

The example linked intended to show you how the prop on DatePicker works. I'm positive you can keep the data from state in database. I don't know what you mean with new click.
Also if you are designing you own application, you don't need <style dangerouslySetInnerHTML...>. That was something i used just for the example.
I'm not sure what you expect of me? You are apparently creating some project and without whole picture it is hard to recommend any solution. Also it is kind of out of scope for pull request discussion.
You might get more info on stackoverflow.


 Their "buyback" will make very little difference in the market price.

the buyback will definitely happen, but with some delay it seems. Still waiting for the details from the team.
-monyx.github


typescript definition file has "undefined" as return type instead of "void"

The typescript definition file has abort() and send(content) return "undefined" as a type instead of "void" [line 17 and 18]. This is causing an issue with the typescript compiler.

This was a bug in the tool we use to generate the .d.ts files. It's since been fixed, and the definition file will be updating as part of the next release.


Add Pill group to Form Field control

Add Pill group to Form Field control (be sth like that but called Input with Pill group https://www.figma.com/file/68D63Nnlrx29Mhs19eEF4d/UITK-v33%3A-Light-components?type=design&node-id=22682%3A360473&mode=design&t=rjgalh0H424Ad4BE-1)
Combobox guide page (and potentially a combo box sticker): how you combine Input with Pill group
### Tasks
- [ ] Salt 1 component
- [ ] Salt next component
- [ ] Component Guide

Replaced by #3643


[Reaction] Shouldn't reload the page when add reaction

Step to reproduce

visit a proposal
Connect to wallet
click add reaction
pop up the keplr sign modal but the page reload at the same time

Expected results
Shouldn't reload the page when signing

blocked by error introduced in oursky/likedao#143 , handle slow query first


to_exclusive

Closes https://github.com/elixir-ecto/ecto_sql/issues/336.
Introduce --to-exclusive option for mix.ecto.migrate and mix.ecto.rollback. Chose this option instead of the ones mentioned in the issue for a couple reasons:

Having both inclusive and exclusive options could be useful
The wording is not ambiguous. --target/--up-to sound to me like it should include the version I'm specifying

It's a bit verbose but this one or --to-excluding are the ones that sounded the least ambiguous to me and also let you keep the existing to behaviour.

:green_heart: :blue_heart: :purple_heart: :yellow_heart: :heart:

Great, thanks!


feat: support multiple date formats

This PR is the same as https://github.com/spatie/laravel-data/pull/120, except it targets the v2 branch and makes a breaking change by updating the configuration format.
I realized that when serializing a date, having multiple formats didn't make sense. So I updated the configuration to have a from and to option, where from is an array of supported input date formats, and to the format to which a date will be serialized into.

Initial PR text:

This PR adds support for multiple date formats, instead of just one. When working with multiple applications (web front-end, APIs, etc), it's easier to accept multiple instead of requiring a specific one.
This change is fully backwards-compatible, but allows the date_format configuration option to be an array.
The DateTimeInterfaceCast will now loop through the configured formats and use the first one that doesn't fail. If all of them fail, it will throw as usual.
Additionnally, I added the most-commonly used formats as the defaults: ATOM, ISO8601, and Y-m-d H:i:s (the same but without the period).
Partially related: https://github.com/php/php-src/pull/8322

Hi @innocenzi, looks like your branch is a bit out of sync. I'm not entirely sure if we want to implement such a feature since you probably decide to use one date time format through your complete application. If you need to divert from that format then you probably want to manually correct it using the format property in the attributes.
I don't think that looping through a list of possible formats hoping to find a correct one is a solution that is really deterministic.
But correct me if I'm wrong 😄

Hey, this PR indeed is outdated since your latest refactor. Love your code by the way.
Related to your thoughts about the PR, I explained it in #120, but let me TL;DR: basically, when your DTO is used through an API, a web app, and other clients, it's very useful to accept multiple date formats.
For instance, by default, JavaScript's Date's UTC method will use the Y-m-d\TH:i:s.u\Z format. MySQL will use Y-m-d H:i:s as their format. Our iOS developer uses Y-m-d\TH:i:sO in our two apps.
Depending on the interface/client, multiple formats can be used, and it's useful to easily accept all of them instead of forcing them to change everything to use one specific format.
That's the use case this PR is trying to solve. Maybe the implementation isn't exactly right, but I do think the use case is legitimate. What do you think?

Hmm, I get your point but I think it's a bit too heavy for users who don't need this. Could we change the config to be one date by default without the from and to options? You would then be able to define an array which will be looped upon when creating a date. When transforming a date we would just use the first format defined if an array is given

Okay, that's basically reverting my latest changes, haha. That was my initial approach in https://github.com/spatie/laravel-data/pull/120.
I updated the PR, and also kept the default configuration as it is now. 👍

Thanks!


Binding to non-null IEnumerable doesn't work

When using the binding feature in the config system, for IEnumerable collections that have a default, non-null value, the collection is never assigned into the target model. For example:
For this json:
{
  "config": {
    "data": [ "a", "b" ]
  }
}

and this application code:
 public class Config
    {
        IEnumerable<string> _data = new List<string>();
        public IEnumerable<string> Data
        {
            get
            {
                return _data;
            }
            set
            {
                _data = value;
            }
        }
    }

    public class Program
    {
        public static void Main(string[] args)
        {
            var config = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("test.json")
                .Build();

            var val = config.GetSection("config").Get<Config>();
            Console.WriteLine(val?.Data?.Count());
        }
    }

The output is:
0
Press any key to continue . . .

I'd expect it to print "2".
I'd argue the issue is in BindInstance and explicit handling for IEnumerable should be made (much like the check for IsArray https://github.com/aspnet/Configuration/blob/dev/src/Microsoft.Extensions.Configuration.Binder/ConfigurationBinder.cs#L281).

I ran into this issue today and came to the same conclusion as @brockallen

We could treat a non-null but empty collection as something that we add to. This way an empty collection would be treated the same as a null collection.

Can you handle the non-null and non empty collection case too?
e.g.          IEnumerable _data = new[] { "c" };
The Config data can have default value if it does not exist in the JSON and can be overwritten if it exists in the JSON.
I find this problem when I try to bind the IdentityServer4 Client
For version 1.5.2, the allowedGrantTypes is IEnumerable and has default value (it is changed to ICollection in latest dev version).   I try to put the client settings in the JSON file but the AllowedGrantTypes can't be overwritten because it is IEnumerable with default value.  It works find if the IEnumberable is null or if it is ICollection
    private IEnumerable<string> _allowedGrantTypes = GrantTypes.Implicit;


Fix deprecation warning coming for chef client 17: unified_mode true

Signed-off-by: Rajesh Paul<EMAIL_ADDRESS>Added unified_mode true

applied your suggestions @tas50

Resolved via #66


Create Valkey cache cluster for KCWorks staging.

Try replacing the existing Redis cache cluster in order to test Valkey cache instead of Redis.

Redis replacement seems to be working fine on KCWorks staging. Will evaluate for a few weeks and make the change on production as well.


Generate samples for GET requests, including required query parameters

Hey @olivier-heurtier! Thanks for the patch! Do I understand correctly that the purpose of this patch is to render request examples for GET requests if such example is provided? If so, can you please rebase on the latest master without unrelated commits?

Hey @olivier-heurtier! Thanks for the patch! Do I understand correctly that the purpose of this patch is to render request examples for GET requests if such example is provided? If so, can you please rebase on the latest master without unrelated commits?

I will wait for a final decision on PR#42.

Hi @ikalnytskyi
rebase is done. You can merge if you still think it is interesting.

I don't know.. I'm somehow skeptical about this change. I mean, it's like showing an example how to pass query parameters via URL, nothing more. I'm afraid this change will produce a lot of noise in rendered specs. @olivier-heurtier do you have a good use case for this?

It is interesting to show samples for GET when you have headers and/or complex query parameters.
swagger-ui is doing it and I find it very useful, even if it is simple and obvious for some with more technical knowledge.

I added the support of exploded query parameters. This is a good use case where a sample is useful to better understand the API.

Thanks, @olivier-heurtier! I'm sorry for the delay in my review.


Update heos-command.js

Already parsed, it was given the error:
SyntaxError: Unexpected token o in JSON at position 1

Hi Emil,
thank you for your fix and the pull request. I will review it on the weekend.


typechecker: Calls to *print* and format should have no namespace

This removes the detection of format from arbitrary namespaces where
the function may not exist, or be an entirely different function.
Fixes #1461.

The diff looks funky because of some de-indentations I did to the inner code. GitHub's "Hide whitespace" functionality should help in reviewing.

Hello!
One or more of the commit messages in this PR do not match the Jakt code submission policy, please check the lint_commits CI job for more details on which commits were flagged and why.
Please do not close this PR and open another, instead modify your commit message(s) with git commit --amend and force push those changes to update this PR.

I've resolved the conflicts, will merge after CI passes.


Fix SCIM2 Internal Groups Patch (adding a member) failing when an existing member has been externally removed from ldap

Issue: https://github.com/wso2/product-is/issues/11233

PR builder started
Link: https://github.com/wso2/product-is/actions/runs/568442100

PR builder completed
Link: https://github.com/wso2/product-is/actions/runs/568442100
Status: success


doesn't find images when using latest docker on mac

If you use a mac + lastest docker this might not work.
I think whats going on is that this program will use the old docker-machine system instead of the new mac one in docker 1.12.x - investigating..

confirmed - mac just needs to use the code for linux and not worry about boot2docker any more - fix underway

fixed in latest release


The extension might have been removed from the firefox addons page.

Following the link in the README gets me to a page which basically says the extension no longer exists and it is not included in the search results when searching for it, as far as I can tell it is still on the chrome webstore and the edge addons page.

Ok, version 1.5.0 was just released and completely get's rid of innerHTML. I didn't notice any performance issues on Chrome so I'm crossing my fingers that this will be it. Submitted the new version to Firefox, let's see if this already gets this moving again.
Next step will be to stop using Parcel to bundle the extension just to simplify the project/reviews. This shouldn't be too hard, it's mostly boring since this will involve re-implementing what I'm currently using `selector-observer' for.  Oh well, I'm sure there will be plenty of snow days ahead so this might happen sometime soon :)

Version 1.5.1 is live on the addons page 😌 . Closing this issue now. If there are any issues with v1.5.1 running in Firefox please open a new issue so I know it's a compatibility problem and not an addon review problem. Thanks!


State does not change properly during testing

Hi there,
I am working on a project and use this package to manage the order status.
I added protect=True in my model:
status = FSMField(_("order status"), choices=Status.choices, default=Status.NEW, protected=True)

It works well, however, when I run a test, the status does not change as expected all the time:
Case A - run FSM method directly in the test, status changed as expected, the test will pass
# models.py
    @transition(field=status, source=['CL'], target='CX')
    def confirm_cancel(self):
        return True

# test_models.py
    def test_cancel_restore_product_stock(self):
        order = OrderFactory(status='CL')
        sku = self.skus[0]
        op = OrderProductFactory(product=sku)
        op.order = order
        op.save()
        order.confirm_cancel()
        order.restore_product_stock()
        sku.refresh_from_db()

        **self.assertEqual(order.status, 'CX')**
        self.assertEqual(sku.stock, 6)
        self.assertEqual(sku.sales, 0)

Case B - run fsm method indirectly (trigger in a view method), status did not change
# models.py
    @transition(field=status, source='SP', target='RT', conditions=[in_return_deadline])
    def request_return(self):
        self.return_at = datetime.now()

# views.py
    def post(self, request, *args, **kwargs):
        data = json.loads(request.body.decode())
        order = Order.objects.get(id=data['order_id'])

        status = order.status
        if status == 'SP':
            order.request_return()
            order.save()
            return JsonResponse({'res': '1', 'msg': 'Return request has been sent'})
    # ...

# test_views.py
    def test_request_return(self):
        order = OrderFactory(user=self.user, status='SP')
        self.client.force_login(self.user)
        payload = {'order_id': order.id}
        res = self.client.post(self.url, data=payload,
                               content_type=self.content_type)
        self.assertEqual(res.status_code, 200)
        self.assertEqual(
            res.json(), {'res': '1', 'msg': 'Return request has been sent'})
        self.assertEqual(order.status, 'RT')

This will lead to a failure:
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/src/app/apps/order/tests/test_views.py", line 218, in test_request_return
    self.assertEqual(order.status, 'RT')
AssertionError: 'SP' != 'RT'
- SP
+ RT

Now there are two different ways to make the status change as expected:
a. If I remove the protect=True kwarg in my model, then run order.refresh_from_db() in the test, the test will pass.
b. If I run the request_return method in Case B test directly, the test will pass, but this does not make sense if I have to manually run the FSM method in every test.
Does anyone have any idea about this issue?
Or is there any way to override protect=True then i may use refresh_from_db in the test ?

refresh_from_db with protected=True are not supported, see #174
I don't think it could be implemented in any reasonable way, without several complicated hacks.
Since, I'm going soon to deprecate django-fsm, I would rather suggest to switch to my new viewflow.fsm package - https://docs-next.viewflow.io/fsm/index.html (already available in 2.0.0a0 release)
viewflow.fsm separates django model and flows, and solves a lot of issues, including refresh_from_db, deferred fields and transition method chaining

Hi @kmmbvnr
Thank you for your immediate response.
Noted with thanks, I will transfer to viewflow then.
As a temporary solution I just assign protect dynamically..
status = FSMField(_("order status"),
                      choices=Status.choices, default=Status.NEW,
                      protected=False if os.environ['DJANGO_SETTINGS_MODULE'].split('.')[-1] == 'testing' else True)


WIP: Add CONTRIBUTING.md

Description
Adding documentation to help explain some of the finer points of how we add code in this repo to help potential contributors.

Notes of things to add here

exports at top of file (here)


ManagementGroups API update (2018-01-01-preview)

This checklist is used to make sure that common issues in a pull request are addressed. This will expedite the process of getting your pull request merged and avoid extra work on your part to fix issues discovered during the review process.
PR information

[X] The title of the PR is clear and informative.
[X] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For information on cleaning up the commits in your pull request, see this page.
[X] Except for special cases involving multiple contributors, the PR is started from a fork of the main repository, not a branch.
[x] If applicable, the PR references the bug/issue that it fixes.
[X] Swagger files are correctly named (e.g. the api-version in the path should match the api-version in the spec).

Quality of Swagger

[X] I have read the contribution guidelines.
[x] My spec meets the review criteria:

[X] The spec conforms to the Swagger 2.0 specification.
[X] The spec follows the guidelines described in the Swagger checklist document.
[X] Validation tools were run on swagger spec(s) and have all been fixed in this PR.

This commit was treated and no generation was made for Azure/azure-sdk-for-go

This commit was treated and no generation was made for Azure/azure-sdk-for-python

This commit was treated and no generation was made for Azure/azure-sdk-for-go

This commit was treated and no generation was made for Azure/azure-sdk-for-go

This commit was treated and no generation was made for Azure/azure-sdk-for-python

This commit was treated and no generation was made for Azure/azure-sdk-for-python

This commit was treated and no generation was made for Azure/azure-sdk-for-go

Swagger to SDK encountered a Subprocess error: (Azure/azure-sdk-for-go)
Command: ['/usr/local/bin/autorest', '/tmp/tmpsh7fdubi/rest/specification/resources/resource-manager/readme.md', '--go', '--go-sdk-folder=/tmp/tmpsh7fdubi/sdk', '--multiapi', '--package-version=v12.2.1-beta', '--use=@microsoft.azure/autorest.go@preview', "--user-agent='Azure-SDK-For-Go/v12.2.1-beta services'", '--verbose']
Finished with return code 1
and output:
AutoRest code generation utility [version: 2.0.4244; node: v7.10.1]
(C) 2018 Microsoft Corporation.
https://aka.ms/autorest

There is a new version of AutoRest available (2.0.4245).
 > You can install the newer version with with npm install -g autorest@latest

   Loading AutoRest core      '/tmp/.autorest/@microsoft.azure_autorest-core<EMAIL_ADDRESS>(2.0.4244)
   Loading AutoRest extension<EMAIL_ADDRESS>(preview->3.0.40)
   Loading AutoRest extension<EMAIL_ADDRESS>(2.1.22->2.1.22)
Processing batch task - {"tag":"package-2017-04-preview"} .
Failure during batch task - {"tag":"package-2017-04-preview"} -- Error: [Exception] No input files provided.

Use --help to get help information..
[Exception] No input files provided.

Use --help to get help information.

This was reviewed over skype by Azure API review board and ARM. Signing off!

Swagger to SDK encountered a Subprocess error: (Azure/azure-sdk-for-go)
Command: ['/usr/local/bin/autorest', '/tmp/tmpuvcktwmy/rest/specification/resources/resource-manager/readme.md', '--go', '--go-sdk-folder=/tmp/tmpuvcktwmy/sdk', '--multiapi', '--package-version=v12.2.1-beta', '--use=@microsoft.azure/autorest.go@preview', "--user-agent='Azure-SDK-For-Go/v12.2.1-beta services'", '--verbose']
Finished with return code 1
and output:
AutoRest code generation utility [version: 2.0.4244; node: v7.10.1]
(C) 2018 Microsoft Corporation.
https://aka.ms/autorest

There is a new version of AutoRest available (2.0.4245).
 > You can install the newer version with with npm install -g autorest@latest

   Loading AutoRest core      '/tmp/.autorest/@microsoft.azure_autorest-core<EMAIL_ADDRESS>(2.0.4244)
   Loading AutoRest extension<EMAIL_ADDRESS>(preview->3.0.40)
   Loading AutoRest extension<EMAIL_ADDRESS>(2.1.22->2.1.22)
Processing batch task - {"tag":"package-2017-04-preview"} .
Failure during batch task - {"tag":"package-2017-04-preview"} -- Error: [Exception] No input files provided.

Use --help to get help information..
[Exception] No input files provided.

Use --help to get help information.

This commit was treated and no generation was made for Azure/azure-sdk-for-python

This commit was treated and no generation was made for Azure/azure-sdk-for-python

Swagger to SDK encountered a Subprocess error: (Azure/azure-sdk-for-go)
Command: ['/usr/local/bin/autorest', '/tmp/tmpqcw4b1rf/rest/specification/resources/resource-manager/readme.md', '--go', '--go-sdk-folder=/tmp/tmpqcw4b1rf/sdk', '--multiapi', '--package-version=v12.2.1-beta', '--use=@microsoft.azure/autorest.go@preview', "--user-agent='Azure-SDK-For-Go/v12.2.1-beta services'", '--verbose']
Finished with return code 1
and output:
AutoRest code generation utility [version: 2.0.4244; node: v7.10.1]
(C) 2018 Microsoft Corporation.
https://aka.ms/autorest

There is a new version of AutoRest available (2.0.4245).
 > You can install the newer version with with npm install -g autorest@latest

   Loading AutoRest core      '/tmp/.autorest/@microsoft.azure_autorest-core<EMAIL_ADDRESS>(2.0.4244)
   Loading AutoRest extension<EMAIL_ADDRESS>(preview->3.0.40)
   Loading AutoRest extension<EMAIL_ADDRESS>(2.1.22->2.1.22)
Processing batch task - {"tag":"package-2017-04-preview"} .
Failure during batch task - {"tag":"package-2017-04-preview"} -- Error: [Exception] No input files provided.

Use --help to get help information..
[Exception] No input files provided.

Use --help to get help information.

This commit was treated and no generation was made for Azure/azure-sdk-for-python

Was unable to create SDK Azure/azure-sdk-for-python PR for this closed PR.


M3-4603: DBaaS Create Modal

Description
Add DBaaS Create modal

Add 'Dbaas' to AccountCapability type
Create DBaaS context & DBaaS Create modal; add modal/dialog to MainContent_CMR.tsx; add item in AddNewMenu_CMR.tsx
Refactor AddNewMenu_CMR.tsx to accomodate multiple contexts

Type of Change

Non breaking change ('update', 'change')

Going ahead and removing the WIP label. Some remaining issues:

Some complaints from TypeScript, mostly re: tags in CreateDbaasDialog.tsx
Tags not being added due to type mismatching
Maintenance Window fields should be on the same line

This is probably the tallest of our full height modals, and when the error states are displayed there's room for some scrolling, which causes a visual bug:

https://www.loom.com/share/92257b32f028415fbbcf2a4f8ec49209

I think this is a general problem with our modals as I noticed it elsewhere too -- I opened ticket M3-4623 for it late last week


[COMPILER] UTF-8 symbols in us-ascii file

# -*- coding: us-ascii -*-
:"\u{e9}"

Should output :é but instead raises invalid symbol in encoding US-ASCII :"\xC3\xA9" (EncodingError).

Blocked by #1998.


Duplicated Imports of getPathRobotConfig Causing Warnings

Describe the bug
While building my Nuxt application, I'm encountering warnings related to duplicated imports of getPathRobotConfig. Specifically, it appears that the import from #internal/nuxt-robots is being ignored in favor of the one from nuxt-simple-sitemap. Here are the relevant details from the build logs:
✔ Server built in 26994ms                                                                                7:37:26 PM
Duplicated imports "getPathRobotConfig", the one from "#internal/nuxt-robots" has been ignored and "C:/Dev/grooveshop-dev/grooveshop-storefront-ui-node-nuxt/node_modules/.pnpm/nuxt-simple-sitemap@4.4.1_@nuxt+devtools@1.3.9_rollup@4.19.0_vite@5.3.5_<EMAIL_ADDRESS>is used
✔ Generated public .output/public                                                                                nitro 7:37:28 PM

PWA v0.20.1
Building service-worker/sw.ts service worker ("es" format)...
vite v5.3.5 building for production...
✓ 65 modules transformed.
../.output/public/sw.mjs  16.30 kB │ gzip: 5.49 kB │ map: 142.10 kB
✓ built in 222ms

PWA v0.20.1
mode      injectManifest
format:   es
precache  211 entries (8121.75 KiB)
files generated
  ../.output/public/sw.js
  ../.output/public/sw.js.map
Duplicated imports "getPathRobotConfig", the one from "#internal/nuxt-robots" has been ignored and "C:/Dev/grooveshop-dev/grooveshop-storefront-ui-node-nuxt/node_modules/.pnpm/nuxt-simple-sitemap@4.4.1_@nuxt+devtools@1.3.9_rollup@4.19.0_vite@5.3.5_<EMAIL_ADDRESS>is used
ℹ Building Nuxt Nitro server (preset: node-server)                                                                                nitro 7:37:30 PM
Duplicated imports "getPathRobotConfig", the one from "#internal/nuxt-robots" has been ignored and "C:/Dev/grooveshop-dev/grooveshop-storefront-ui-node-nuxt/node_modules/.pnpm/nuxt-simple-sitemap@4.4.1_@nuxt+devtools@1.3.9_rollup@4.19.0_vite@5.3.5_<EMAIL_ADDRESS>is used

Reproduction
No response
System / Nuxt Info
System:
 OS: Windows 11 10.0.22635
 CPU: (6) x64 Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz
 Memory: 10.33 GB / 31.94 GB
Binaries:
 Node: 22.5.1 - C:\Program Files\nodejs\node.EXE
 npm: 10.8.2 - C:\Program Files\nodejs\npm.CMD
 pnpm: 9.6.0 - C:\Program Files\nodejs\pnpm.CMD
 bun: 1.1.8 - ~\.bun\bin\bun.EXE
Browsers:
 Edge: Chromium (127.0.2651.8)
 Internet Explorer: 11.0.22621.3566

- Operating System: Windows_NT
- Node Version:     v22.5.1
- Nuxt Version:     3.12.4
- CLI Version:      3.12.0
- Nitro Version:    2.9.7
- Package Manager<EMAIL_ADDRESS>- Builder:          -
- User Config:      ssr, debug, sourcemap, telemetry, future, app, site, modules, routeRules, build, imports, experimental, devtools, typescript, tailwindcss, i18n, css, runtimeConfig, cookieControl, pinia, vite, nitro, eslint, image, pwa, schemaOrg, sitemap, scripts, linkChecker, robots, htmlValidator, veeValidate, ogImage, colorMode, turnstile
- Runtime Modules<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>unplugin-icons/nuxt<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

Hi, the @nuxtseo/module is deprecated, can you please upgrade to @nuxtjs/seo. There's a guide here: https://nuxtseo.com/nuxt-seo/migration-guide/beta-to-rc

Oh yes i noticed like 2 mins ago, thanks!

@harlan-zw Hello, I have the same issue and i'm up to date:
 "dependencies": {
        "@nuxtjs/seo": "^2.0.0-rc.23",
        ...
    },
    "devDependencies": {
        "nuxt-site-config": "^2.2.18",
        "nuxt-site-config-kit": "^2.2.18",
        ...
    }

[12:46:25]  WARN  Duplicated imports "getPathRobotConfig", the one from "#internal/nuxt-robots" has been ignored and "[...]/node_modules/@nuxtjs/sitemap/dist/runtime/nitro/composables/getPathRobotConfigPolyfill" is used

[12:46:25]  WARN  Duplicated imports "getPathRobotConfig", the one from "#internal/nuxt-robots" has been ignored and "[...]/node_modules/@nuxtjs/sitemap/dist/runtime/nitro/composables/getPathRobotConfigPolyfill" is used

[12:46:26]  WARN  Duplicated imports "getPathRobotConfig", the one from "#internal/nuxt-robots" has been ignored and "[...]/node_modules/@nuxtjs/sitemap/dist/runtime/nitro/composables/getPathRobotConfigPolyfill" is used


Fix pointer issue with not managed stores

This fixes the issue when stores are not managed by the mach config. This is happening because pointers needs to be dereferenced before use. Added a template function to fix this issue.

Fixed double default value

🥳


Private properties

DBFlow Version: 4.1.2
Issue Kind (Bug, Question, Feature): Question
Description:
I created this block of code inside of Kotlin data class, but got exception told me it shouldn't be private. Is there a way to do same behavior somehow?
@get:OneToMany(methods = arrayOf(OneToMany.Method.ALL))
private var collections by oneToMany { select from Collection::class where (Collection_Table.musician_id eq id ) }

var collectionsNonNull = collections ?: emptyList()

dont make OneToMany private.

the annotation processor needs it visible so it can call it.


How to build nn_sample using ndk-build?

How to link libneuralnetworks.so in "Android.mk" file?

I add "LOCAL_LDLIBS    += -lneuralnetwork" to Android.mk,
but, ndk-build, Warning:
Android NDK: WARNING:/home/local/deeplearning/acl-cnn/example/nn_sample/android/jni/Android.mk:nn_sample: # non-system libraries in linker flags: -lneuralnetworks     Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES     Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the current module

that need to be created: it was only created with CMake.
it could be done pretty simple too:  create the android.mk and use it with Gradle.  In master-ndkbuild branch, there are examples how to use it.

the ndkbuild for the nn_sample is merged into directory other-builds/ndkbuild/nn_sample master branch.  The source code is shared from CMake's build at nn_sample/app/src/main. Hope this helps. Closing this one, feel free to open if it does not work for you.  Thx!


Netcore2 x

I've been using the main project for a few weeks now without any issues.  The test projects are a bit of a mess and outside of some project recreation and renaming couchBase to couchbase, I haven't touched them.

Thanks @dad045  - I'll start reviewing soon. I think it'll probably be best if we get your initial PR into the branch then we can iterate until we're happy, then do another release.


DownloadManager.ACTION_NOTIFICATION_CLICKED

Hi guys,
Please, add callback when the user clicks on a system notification.
This need for wake up app from background mode.
Thanks

@GROL , I will look into this one, but it might take time.
As a workaround, you can try to use AppState to handle app state transition.

+1 for this. Instead opening the file, i want to reopen the app and open with it. Or is there any way to auto-dismiss the notification after download complete? @wkh237


An exterior of an empty Polygon is None, but probably should be an empty GeometryCollection

Creating an empty Polygon and taking its exterior will give None:
>>> from shapely.geometry import Polygon
>>> print(Polygon().exterior)
None

But shouldn't it give an empty GeometryCollection?
So, expected behavior would be:
>>> from shapely.geometry import Polygon
>>> print(Polygon().exterior)
GEOMETRYCOLLECTION EMPTY

I couldn't find anything specific to this behavior in the docs.

Shapely version: 1.6.4.post1, installed from conda.

@LostFan123 very good point. It would be best if the exterior of an empty polygon was equivalent to LinearRing().


Fix Java parsing of annotations on qualified types

According to #1 this is valid syntax:
java.lang.@NonNull String

Fixes #21319

🤯 I was just looking at https://github.com/scala/bug/issues/9883 and didn't even get there yet.

Happy to sign off on this fix, so at least it parses and the scala code can compile?

I can't tell at a glance if the test tests something. Should I backport to scala 2 and complain if it doesn't?
I just had lunch, so I have all afternoon PST to answer this question non-rhetorically.