text:
Null results for GitHub users GET request

What are you generating using Kiota, clients or plugins?
API Client/SDK
In what context or format are you using Kiota?
Nuget tool
Client library/SDK language
Csharp
Describe the bug
I am trying to get users from the GitHub API, like var users = await gitHubClient.Users["kfcampbell"].GetAsync();
I'm using the dotnet-sdk generated from Kiota to do this, but it will reproduce with a fresh SDK generated from the Kiota CLI. The offending code is this generated code:
            public static WithUsernameGetResponse CreateFromDiscriminatorValue(IParseNode parseNode)
            {
                _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
                var mappingValue = parseNode.GetChildNode("")?.GetStringValue();
                var result = new WithUsernameGetResponse();
                if("private-user".Equals(mappingValue, StringComparison.OrdinalIgnoreCase))
                {
                    result.PrivateUser = new GitHub.Models.PrivateUser();
                }
                else if("public-user".Equals(mappingValue, StringComparison.OrdinalIgnoreCase))
                {
                    result.PublicUser = new GitHub.Models.PublicUser();
                }
                return result;
            }

When generating, the above code lives in a file called Users/Item/WithUsernameItemRequestBuilder.cs. What happens is that mappingValue is always null, which means the if statements never trigger, which means the returned users are always null in the result.
Expected behavior
I expect the returned users to be populated correctly.
How to reproduce
You may use the dotnet-sdk and modify the CLI to include the following C# code:
using GitHub;
using GitHub.Octokit.Client;
using GitHub.Octokit.Client.Authentication;

var token = Environment.GetEnvironmentVariable("GITHUB_TOKEN") ?? "";
var request = RequestAdapter.Create(new TokenAuthProvider(new TokenProvider(token)));
var gitHubClient = new GitHubClient(request);

var users = await gitHubClient.Users["kfcampbell"].GetAsync();

Then run dotnet build, export your GITHUB_TOKEN, and run dotnet run. Alternately, you may generate a fresh C# SDK from the Kiota CLI, create your own CLI, input that code, and follow the same steps.
Open API description file
https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json
Kiota Version
v1.14.0
Latest Kiota version known to work for scenario above?(Not required)
No response
Known Workarounds
Manually removing the if statements so the generated code reads like:
            public static WithUsernameGetResponse CreateFromDiscriminatorValue(IParseNode parseNode)
            {
                _ = parseNode ?? throw new ArgumentNullException(nameof(parseNode));
                var mappingValue = parseNode.GetChildNode("")?.GetStringValue();
                var result = new WithUsernameGetResponse();
                result.PrivateUser = new GitHub.Models.PrivateUser();
                result.PublicUser = new GitHub.Models.PublicUser();

                return result;
            }

will fix the issue.
Configuration
This occurs both on my machine (an Ubuntu 22.04 derivative, 64-bit Linux box) and GitHub Actions (Ubuntu 22.04, 64-bit Linux). I do not believe it is specific to this configuration.
Debug output
N/A
Other information
No response

When originally creating this issue, I somehow neglected to note it was originally spotted by the eagle eyes of @martincostello. Thanks Martin!

Hi @kfcampbell
Thanks for reaching out on this topic!
Aren't our MVPs precious? ;-)
This behaviour is expected, this is a union type, but it doesn't have discriminator information. Adding it to your description should fix the deserialization issue. (assuming you have a property that gives you the user kind). Additionally you might add mappings if the user kinds are not strictly matching the component name.
        "responses": {
          "200": {
            "description": "Response",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/private-user"
                    },
                    {
                      "$ref": "#/components/schemas/public-user"
                    }
                  ]
                },
+             "discriminator": {
+               "propertyName": "foo"
+              },
                "examples": {
                  "default-response": {
                    "$ref": "#/components/examples/public-user-default-response"
                  },
                  "response-with-git-hub-plan-information": {
                    "$ref": "#/components/examples/public-user-response-with-git-hub-plan-information"
                  }
                }
              }
            }
          },

Thanks for the information! I know historically we've had teams resistant to adding discriminators to our specs because they would break other internal tooling for some reason. I've asked to see if that is still the case.

Additionally you might add mappings if the user kinds are not strictly matching the component name.

Do you mind telling me a little bit more about this? I'm not quite sure I understand what you're getting at here, I'm sorry.

Do you mind telling me a little bit more about this?

I meant a mappings element under the discriminator one. But if you're already hesitant to add a discriminator to the description, this is not going to help (not an alternative)

I'd like to come back to this issue to report some weird findings. In the hopes of fixing this behavior, I've added a discriminator locally to my API, and I've confirmed payloads are coming back correctly:
abridged public user payload:
{
  "login": "monalisa",
  "id": 2,
  "followers": 0,
  "created_at": "2024-08-23T15:33:30Z",
  "updated_at": "2024-08-23T17:21:54Z",
  "user_type": "public"
}

abridged private user payload:
{
    "login": "monalisa",
    "id": 2,
    "following": 0,
    "created_at": "2024-08-23T15:33:30Z",
    "updated_at": "2024-08-23T17:21:54Z",
    "user_type": "private",
    "private_gists": 0,
    "two_factor_authentication": true,
}

The users endpoint OpenAPI spec I used to generate the SDK looks like this:
    "/user": {
      "get": {
        "summary": "Get the authenticated user",
        "description": "OAuth app tokens and personal access tokens (classic) need the `user` scope in order for the response to include private profile information.",
        "tags": [
          "users"
        ],
        "operationId": "users/get-authenticated",
        "externalDocs": {
          "description": "API method documentation",
          "url": "https://docs.github.com/rest/users/users#get-the-authenticated-user"
        },
        "parameters": [

        ],
        "responses": {
          "200": {
            "description": "Response",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/private-user"
                    },
                    {
                      "$ref": "#/components/schemas/public-user"
                    }
                  ],
                  "discriminator": {
                    "propertyName": "user_type",
                    "mapping": {
                      "public": "../../components/schemas/public-user.yaml",
                      "private": "../../components/schemas/private-user.yaml"
                    }
                  }
                },
                "examples": {
                  "response-with-public-and-private-profile-information": {
                    "$ref": "#/components/examples/private-user-response-with-public-and-private-profile-information"
                  },
                  "response-with-public-profile-information": {
                    "$ref": "#/components/examples/private-user-response-with-public-profile-information"
                  }
                }
              }
            }
          },
          "304": {
            "$ref": "#/components/responses/not_modified"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "401": {
            "$ref": "#/components/responses/requires_authentication"
          }
        }
      },

The full spec is available upon request.
What's interesting here is even with the discriminator, the code still does not serialize the HTTP response body into the type correctly. Using the Go Kiota code (where gh is a variable holding an initialized Kiota client):
	user, err := gh.User().Get(ctx, nil)
	if err != nil {
		log.Fatalf("error: ", err)
	}

	fmt.Println("user: ", user) // prints user:  &{<nil> <nil>}

The Kiota serialization code:
// CreateUserGetResponseFromDiscriminatorValue creates a new instance of the appropriate class based on discriminator value
// returns a Parsable when successful
func CreateUserGetResponseFromDiscriminatorValue(parseNode i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode) (i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.Parsable, error) {
	result := NewUserGetResponse()
	if parseNode != nil {
		mappingValueNode, err := parseNode.GetChildNode("user_type")
		if err != nil {
			return nil, err
		}
		if mappingValueNode != nil {
			mappingValue, err := mappingValueNode.GetStringValue()
			if err != nil {
				return nil, err
			}
			if mappingValue != nil {
			}
		}
	}
	return result, nil
}

is creating a type, UserGetResponse, that contains both a publicUser and a privateUser internal field in it. However, neither of these are initialized. What I would expect is that based on the mappingValue, there would be either a PublicUserResponse or a PrivateUserResponse type generated, initialized, and populated.
Does that make sense? Is there an error in my API code/responses or OpenAPI spec somewhere?

Hey @kfcampbell
Thank you for the additional information.
Re-opening so it's easier to track.
have you tried the following instead
"discriminator": {
  "propertyName": "user_type",
    "mapping": {
-      "public": "../../components/schemas/public-user.yaml",
-      "private": "../../components/schemas/private-user.yaml"
+      "public": "#/components/schemas/public-user",
+      "private": "#/components/schemas/private-user"
  }
}

Interestingly, that appears to be an artifact of GitHub's internal schema construction: we have separate files for each operation and schema, and they're all munged together. Something in that engine doesn't appear to be following up the reference correctly to replace the prepended relative path with the #/components/schemas directory.
That's gotten us a little further! Given a finalized schema of:
    "/user": {
      "get": {
        "summary": "Get the authenticated user",
        "description": "OAuth app tokens and personal access tokens (classic) need the `user` scope in order for the response to include private profile information.",
        "tags": [
          "users"
        ],
        "operationId": "users/get-authenticated",
        "parameters": [

        ],
        "responses": {
          "200": {
            "description": "Response",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/private-user"
                    },
                    {
                      "$ref": "#/components/schemas/public-user"
                    }
                  ],
                  "discriminator": {
                    "propertyName": "user_type",
                    "mapping": {
                      "public": "#/components/schemas/public-user",
                      "private": "#/components/schemas/private-user"
                    }
                  }
                },
                "examples": {
                  "response-with-public-and-private-profile-information": {
                    "$ref": "#/components/examples/private-user-response-with-public-and-private-profile-information"
                  },
                  "response-with-public-profile-information": {
                    "$ref": "#/components/examples/private-user-response-with-public-profile-information"
                  }
                }
              }
            }
          },
          "304": {
            "$ref": "#/components/responses/not_modified"
          },
          "403": {
            "$ref": "#/components/responses/forbidden"
          },
          "401": {
            "$ref": "#/components/responses/requires_authentication"
          }
        },
      },

the same Kiota code is produced:
func CreateUserGetResponseFromDiscriminatorValue(parseNode i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode)(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.Parsable, error) {
    result := NewUserGetResponse()
    if parseNode != nil {
        mappingValueNode, err := parseNode.GetChildNode("user_type")
        if err != nil {
            return nil, err
        }
        if mappingValueNode != nil {
            mappingValue, err := mappingValueNode.GetStringValue()
            if err != nil {
                return nil, err
            }
            if mappingValue != nil {
                if ie967d16dae74a49b5e0e051225c5dac0d76e5e38f13dd1628028cbce108c25b6.EqualFold(*mappingValue, "private") {
                    result.SetPrivateUser(i59ea7d99994c6a4bb9ef742ed717844297d055c7fd3742131406eea67a6404b6.NewPrivateUser())
                } else if ie967d16dae74a49b5e0e051225c5dac0d76e5e38f13dd1628028cbce108c25b6.EqualFold(*mappingValue, "public") {
                    result.SetPublicUser(i59ea7d99994c6a4bb9ef742ed717844297d055c7fd3742131406eea67a6404b6.NewPublicUser())
                }
            }
        }
    }
    return result, nil
}

Note the extra code visible after if mappingValue != nil. When running against a local API that returns the user_type discriminator, the privateUser sub-object is correctly initialized.
Later on, in github.com/microsoft/kiota-serialization-json-go's json_parse_node.go's GetObjectValue method, it looks like all the properties are correctly identified:

but the fields are not:

which means the result stays empty as initialized:

Do you have any idea what might be going on there?

On the side note: that's because at the time we implemented composed types support for go, go did not support union types. I think it's changed in recent versions but changing that now would be a source breaking change.

On the main problem: can you share the generated get field deserializer body for the user get response type please? (The Union model)

There's this function:
// GetFieldDeserializers the deserialization information for the current model
// returns a map[string]func(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode)(error) when successful
func (m *UserGetResponse) GetFieldDeserializers()(map[string]func(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode)(error)) {
    return make(map[string]func(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode)(error))
}

inside of user_request_builder.go that's suspiciously empty. Is that what you're referring to?

Thank you for the additional information.
Yes that's what I was referring to.
And yes that's emptier than I expected. I expected to see a "triage" implementation "if memberType1 is not null, then return the field deserializers from that type", etc...
This is the method which is supposed to write that. It'd be interesting to trace the generation to understand whether it gets there at all.
https://github.com/microsoft/kiota/blob/61d036ed06c2c9942a6ba3e9e8f4abe8b4abd1e0/src/Kiota.Builder/Writers/Go/CodeMethodWriter.cs#L629
Let us know if you have any additional comments or questions.

What's the best way to do that? I can provide debug logs and a full OpenAPI specification, of course. I could also maybe manually run Kiota from source in debug mode and step through to get to that method?
It's worth noting this occurs both on Kiota v1.14.0 (which is what we were running prior to this week) and Kiota v1.17.0 (which is what we upgraded to this week).

clone the repo, change the target description for the go launch settings, set a breakpoint on that method.

I'm still working through this and haven't had as much time as I'd like yet to debug with Kiota. We've had issues with our OpenAPI tooling and we're in the process of getting discriminators to a point where they'll even be included in our specification. Stay tuned.

Okay, I've done some more investigation here. It turns out this is (at least) a Go thing: the serialization works in .NET. When given a correct spec (one that includes the discriminator as described here, Kiota generates correct .NET code to deserialize the object.
Kiota v1.17.0
Microsoft.Kiota.Abstractions 1.11.0
Microsoft.Kiota.Http.HttpClientLibrary 1.11.0
Microsoft.Kiota.Serialization.Form 1.11.0
Microsoft.Kiota.Serialization.Json 1.11.0
Microsoft.Kiota.Serialization.Multipart 1.11.0
Microsoft.Kiota.Serialization.Text 1.11.0
Microsoft.Kiota.Authentication.Azure 1.11.0
GetFieldDeserializers is properly generating in .NET:
        /// <summary>
        /// The deserialization information for the current model
        /// </summary>
        /// <returns>A IDictionary<string, Action<IParseNode>></returns>
        public virtual IDictionary<string, Action<IParseNode>> GetFieldDeserializers()
        {
            return new Dictionary<string, Action<IParseNode>>
            {
                { "avatar_url", n => { AvatarUrl = n.GetStringValue(); } },
                { "bio", n => { Bio = n.GetStringValue(); } },
                { "blog", n => { Blog = n.GetStringValue(); } },
                { "business_plus", n => { BusinessPlus = n.GetBoolValue(); } },
                { "collaborators", n => { Collaborators = n.GetIntValue(); } },
                { "company", n => { Company = n.GetStringValue(); } },
                { "created_at", n => { CreatedAt = n.GetDateTimeOffsetValue(); } },
                { "disk_usage", n => { DiskUsage = n.GetIntValue(); } },
                { "email", n => { Email = n.GetStringValue(); } },
                { "events_url", n => { EventsUrl = n.GetStringValue(); } },
                { "followers", n => { Followers = n.GetIntValue(); } },
                { "followers_url", n => { FollowersUrl = n.GetStringValue(); } },
                { "following", n => { Following = n.GetIntValue(); } },
                { "following_url", n => { FollowingUrl = n.GetStringValue(); } },
                { "gists_url", n => { GistsUrl = n.GetStringValue(); } },
                { "gravatar_id", n => { GravatarId = n.GetStringValue(); } },
                { "hireable", n => { Hireable = n.GetBoolValue(); } },
                { "html_url", n => { HtmlUrl = n.GetStringValue(); } },
                { "id", n => { Id = n.GetLongValue(); } },
                { "ldap_dn", n => { LdapDn = n.GetStringValue(); } },
                { "location", n => { Location = n.GetStringValue(); } },
                { "login", n => { Login = n.GetStringValue(); } },
                { "name", n => { Name = n.GetStringValue(); } },
                { "node_id", n => { NodeId = n.GetStringValue(); } },
                { "notification_email", n => { NotificationEmail = n.GetStringValue(); } },
                { "organizations_url", n => { OrganizationsUrl = n.GetStringValue(); } },
                { "owned_private_repos", n => { OwnedPrivateRepos = n.GetIntValue(); } },
                { "plan", n => { Plan = n.GetObjectValue<global::GitHub.Models.PrivateUser_plan>(global::GitHub.Models.PrivateUser_plan.CreateFromDiscriminatorValue); } },
                { "private_gists", n => { PrivateGists = n.GetIntValue(); } },
                { "public_gists", n => { PublicGists = n.GetIntValue(); } },
                { "public_repos", n => { PublicRepos = n.GetIntValue(); } },
                { "received_events_url", n => { ReceivedEventsUrl = n.GetStringValue(); } },
                { "repos_url", n => { ReposUrl = n.GetStringValue(); } },
                { "site_admin", n => { SiteAdmin = n.GetBoolValue(); } },
                { "starred_url", n => { StarredUrl = n.GetStringValue(); } },
                { "subscriptions_url", n => { SubscriptionsUrl = n.GetStringValue(); } },
                { "suspended_at", n => { SuspendedAt = n.GetDateTimeOffsetValue(); } },
                { "total_private_repos", n => { TotalPrivateRepos = n.GetIntValue(); } },
                { "twitter_username", n => { TwitterUsername = n.GetStringValue(); } },
                { "two_factor_authentication", n => { TwoFactorAuthentication = n.GetBoolValue(); } },
                { "type", n => { Type = n.GetStringValue(); } },
                { "updated_at", n => { UpdatedAt = n.GetDateTimeOffsetValue(); } },
                { "url", n => { Url = n.GetStringValue(); } },
                { "user_type", n => { UserType = n.GetStringValue(); } },
            };
        }

but not for Go:
// GetFieldDeserializers the deserialization information for the current model
// returns a map[string]func(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode)(error) when successful
func (m *UserGetResponse) GetFieldDeserializers()(map[string]func(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode)(error)) {
    return make(map[string]func(i878a80d2330e89d26896388a3f487eef27b0a0e6c010c493bf80be1452208f91.ParseNode)(error))
}

leading to the empty response body in Go only.
Go versions:
Kiota v1.17.0
github.com/microsoft/kiota-abstractions-go v1.6.1
github.com/microsoft/kiota-http-go v1.4.3
github.com/microsoft/kiota-serialization-form-go v1.0.0
github.com/microsoft/kiota-serialization-json-go v1.0.7
github.com/microsoft/kiota-serialization-multipart-go v1.0.0
github.com/microsoft/kiota-serialization-text-go v1.0.0
@baywet should this be transfered perhaps to github.com/microsoft/kiota-abstractions-go or github.com/microsoft/kiota-http-go?

Thank you for the additional information.
If we're comparing the serialization methods for the same types across different languages, this is definitively a generation issue and should remain here.
Assuming those methods are both for the UserGetResponse type (obvious in go, but not in dotnet from what you've shared), I think the next step would be to approach that in a dichotomic way: in debug, are the writers receiving similar information? are they implemented in a similar way? (they should beyond the fact that go has intermediate interfaces which is what might be messing up the logic here).
Also doing a sanity check with Java would be a good thing, since Java is close to both languages.
Let us know if you have any additional comments or questions.

Thank you for the additional information.
I think this is what you're looking for.
https://github.com/microsoft/kiota/blob/27ddb0bebcb731d342b8829a8320e95b3e56ff36/src/Kiota.Builder/Writers/Go/CodeMethodWriter.cs#L367

The LanguageWriter writes directly to the the file for performance reasons (memory pressure and whatnot). So no, unless me makes changes.
However, you could tweak/duplicate the unit test, and that'll give you access to the resulting string. Plus it's going to be much faster to run than the full engine.
https://github.com/microsoft/kiota/blob/5ec4690a734c6db48e0b28740e6cacd165665fb8/tests/Kiota.Builder.Tests/Writers/Go/CodeMethodWriterTests.cs#L1495

After a bit of foot work (thx for all of the tips @baywet ❤ ).  I tracked it down to this:
The issue is in WriteDeserializerBodyForUnionModel or at least why the method body is not getting generated.
So the LINQ statement for Go is:
var otherPropGetters = parentClass
 .GetPropertiesOfKind(CodePropertyKind.Custom)
 .Where(static x => !x.ExistsInBaseType && x.Getter != null)
 .Where(static x => x.Type is CodeType propertyType && !propertyType.IsCollection && propertyType.TypeDefinition is CodeClass)
 .OrderBy(static x => x, CodePropertyTypeForwardComparer)
 .ThenBy(static x => x.Name)
 .Select(static x => x.Getter!.Name.ToFirstCharacterUpperCase())
 .ToArray();

The problem is that for these discriminators the TypeDefinition is not of type CodeClass but of type CodeInterface
When the LINQ is rewritten like this, it works:
var otherPropGetters = parentClass
 .GetPropertiesOfKind(CodePropertyKind.Custom)
 .Where(static x => !x.ExistsInBaseType && x.Getter != null)
 .Where(static x => x.Type is CodeType propertyType && !propertyType.IsCollection && propertyType.TypeDefinition is CodeInterface)
 .OrderBy(static x => x, CodePropertyTypeForwardComparer)
 .ThenBy(static x => x.Name)
 .Select(static x => x.Getter!.Name.ToFirstCharacterUpperCase())
 .ToArray();

Given my limited understanding of the architecture here, when the models are generated in go they are done so as interfaces.  i.e.
type ContentSymlinkable interface whereas .NET generates them as classes.
If this seems like a plausible fix, we can create a quick PR with some tests and get this resolved; just double checking here given my limited knowledge of the kiota architecture.

Great work getting to the root cause here!
Yeah this has probably been caused by some bad copy pasta.
Please go ahead and submit a pull request for that.
If you could please double check other instances of the same pattern in the same source file as well, that'd help too!

authors: baywet kfcampbell nickfloyd

repo: microsoft/kiota


text:
client->server request: matching brace

Another request from rust-analyzer
Matching Brace
Server Capability: { "matchingBrace": boolean }
This request is send from client to server to handle "Matching Brace" editor action.
Method: experimental/matchingBrace
Request:
interface MatchingBraceParams {
    textDocument: TextDocumentIdentifier,
    /// Position for each cursor
    positions: Position[],
}

Response:
Position[]

Example
fn main() {
    let x: Vec<()>/*cursor here*/ = vec![]
}

experimental/matchingBrace yields the position of <.
In many cases, matching braces can be handled by the editor.
However, some cases (like disambiguating between generics and comparison operations) need a real parser.
Moreover, it would be cool if editors didn't need to implement even basic language parsing
Unresolved Question

Should we return a a nested brace structure, to allow paredit-like actions of jump out of the current brace pair?
This is how SelectionRange request works.
Alternatively, should we perhaps flag certain SelectionRanges as being brace pairs?

This basically documents what rust-analyzer is doing today, but now I lean towards the last alternative for the general protocol -- just stuffing info about braces into SelectionRange request.

@jrieken FYI.

Dups #672.

source: gharchive/issue

authors: dbaeumer matklad

repo: microsoft/language-server-protocol

license_type: permissive

license_source: github-api


text:
Raise exception when getting timeout for running cmd to detect OS

For some images, like sciencelogicinc1622565452194, middleware publisher's images, running some basic commands will be time out. This is due to the image not allow to run commands or in bad state.
In _get_detect_string, there are more than 10 commands to detect the OS. If every command gets time out (10 min), the case might last longer than 1 hour.
The case should be go to the end immediately if the system can't run any commands.
In this PR, add timeout=30 for every command in _get_detect_string, and raise an exception when gets timeout to avoid more timeout commands.

@LiliDeng LGTM

source: gharchive/pull-request

repo: microsoft/lisa

license: MIT


text:
MUXControlsTestApp crashes with old styles

MUXControlsTestApp crashes when using old styles upon navigating to CommonStyles page with following error message:
Windows.UI.Xaml.Markup.XamlParseException: 'The text associated with this error code could not be found.

Cannot find a Resource with the Name/Key DefaultGridViewItemStyle [Line: 365 Position: 137]'

@chingucoding good catch. I think we can add this key to the old styles and just point it to the system GridViewItem style so that this key is available in both. Also, we might need the same for DefaultListViewItem style. @RBrid as FYI. @chingucoding do you want to make a fix for this ?

Would GridViewItemRevealStyle be the correct style to point to as a fix for this @ranjeshj ? I would create a PR once we know the correct resource in OS Xaml to point to.

@chingucoding Yes GridViewItemRevealStyle was the default in old styles.

authors: chingucoding ranjeshj

repo: microsoft/microsoft-ui-xaml


text:
ContentDialog.ShowAsync() throws ArgumentException

Describe the bug
ContentDialog contentDialog = new ContentDialog();
contentDialog.Title = "Hello!";
contentDialog.Content = "Hello from WinUI 3";
contentDialog.PrimaryButtonText = "OK";
await contentDialog.ShowAsync();

throws ArgumentException, but it works in UWP.
Expected behavior
Should not throw exception, this was working in UWP / WinUI 2.
Screenshots

Version Info
NuGet package version:
WinUI 3 - Project Reunion 0.5: 0.5.7
Windows app type:

UWP
Win32

Yes

Windows 10 version
Saw the problem?

Insider Build (xxxxx)

October 2020 Update (19042)
Yes

May 2020 Update (19041)

November 2019 Update (18363)

May 2019 Update (18362)

October 2018 Update (17763)

April 2018 Update (17134)

Fall Creators Update (16299)

Creators Update (15063)

Device form factor
Saw the problem?

Desktop
Yes

Xbox

Surface Hub

IoT

From the code you provided it looks like you are not setting the XamlRoot of the ContentDialog. See this section in the documentation

You can also set the Xaml root implicitly by declaring your ContentDialog in XAML


text:
remove duplicate entry causing solution load errors.

RadioButton_themeresources.xaml is included from multiple projects causing the mux project to not load in visual studio. msbuild seems to happily ignore it though - so it does not cause a build break in the pipelines.
Fixes #1982

  <Type>ThemeResources</Type>

Out of curiosity, why delete the 'DefaultStyle' type duplicate entry instead of the 'ThemeResources' type?

Refers to: dev/RadioButtons/RadioButtons.vcxitems:38 in 868a941. [](commit_id = 868a94103c705fe26b3ac2221d6283c64885ba10, deletion_comment = False)

@ohjad The thing is that the ThemeResource is also referenced in the CommonStyles.vcxitems file, while the other is not. I have to admit its quite confusing that we have "RadioButton_themeresources.xaml" and "RadioButtons_themeresources.xaml".

On a different note, maybe we could also remove the reference to the "RadioButton_themeresource.xaml" file from here:
https://github.com/microsoft/microsoft-ui-xaml/blob/ee03bace144e3a37650df0536955f5f658dd2aad/dev/CommonStyles/CommonStyles.vcxitems#L17-L20
The RadioButton file is the only file referenced there that is not in the "CommonStyles" folder but sits in another project.

/azp run

/azp run

uttons/RadioButtons.vcxitems:38 in 868a941. [](commit_id = 868a941, deletion_comment =

This took a bit of digging, but turns out we use these tags in our targets/build tasks to put together what goes in the themeresources and generic.xaml. See here for more.

/azp run

/azp run

@ranjeshj want to move this in?

authors: StephenLPeters chingucoding kmahone ojhad ranjeshj


text:
Fix some issues with MUX project incremental build

I was noticing that locally mdmerge and the DependencyPropertyCodeGen were running when they didn't need to.

XamlMetadataCodeGenMUX task didn't have its Inputs declared correctly, so fixed up that path.
DependencyPropertyCodeGen wasn't always updating timestamps on its output files which meant that incremental build would always run that task. Added <Touch .../>.

Also I saw that MUXCustomBuildTasks wasn't at the same version across the project so I updated it everywhere. This might fix an issue that @teaP is hitting locally. I hope!

Awesome! I was about to send mail about this to see if anyone knew how to fix it.
How did you debug this? Or did you just inspect the proj file and see the issues?

How did you debug this? Or did you just inspect the proj file and see the issues?

The diagnostic log shows output like:
Input file "S:\Repos\microsoft-ui-xaml\BuildOutput\Debug\\x64\Microsoft.UI.Xaml\Microsoft.winmd" is newer than output file "S:\Repos\microsoft-ui-xaml\dev\dll\..\Generated\BitmapIconSource.properties.h".

And then you say "huh, why is that?" and look at the Target in the vcxproj to figure out how to fix it. In theory there's this new FileReads/FileWrites machinery that can do this tracking automatically for you but I haven't been able to figure out how to make it work in custom targets yet, the documentation for it is non-existent.

authors: jevansaks kmahone


text:
Error from test_conv.py and convolution.py to the latest version

Originally, when I tested the file version from November 8th, everything was normal.
However, after updating the file to the latest version (Dec 8, 2023), problems arose.
When running the pytest, "test_conv.py" displays
RuntimeError: Boolean value of Tensor with more than one value is ambiguous

The same error also occurs in the "convolution.py" layer within the model.
I copied an unmodified version of the file again, but the error still occurs.
I'm wondering if anyone has encountered the same issue and how it was resolved.
Thank you!

Great catch, this should be fixed in 9474171.

repo: microsoft/microxcaling


text:
Referencing C++/WinRT static library results in MSB3272

Originally filed as https://developercommunity.visualstudio.com/content/problem/629524/static-library-reference-causes-there-was-a-proble.html
Repro via @DHowett-MSFT: DoStaticCppWinrtLibrariesWorkOrNot.zip who also developed a workaround: https://github.com/microsoft/terminal/pull/2007/commits/40beb06dde29a39549af7af0dd19ab3dc697a7e1.
error MSB3272: There was a problem reading the implementation file "S:\repro\devdiv\DevDiv\948240\ARM\Debug\ComponentLib\ComponentLib.lib". "Unable to read beyond the end of the stream." [S:\repro\devdiv\DevDiv\948240\ComponentDll\ComponentDll.vcxproj]

The full exception stack is:
   at System.IO.BinaryReader.FillBuffer(Int32 numBytes) in f:\dd\ndp\clr\src\BCL\system\io\binaryreader.cs:line 580
   at System.IO.BinaryReader.ReadUInt32() in f:\dd\ndp\clr\src\BCL\system\io\binaryreader.cs:line 191
   at Microsoft.Build.Tasks.ReferenceTable.ReadMachineTypeFromPEHeader(String dllPath) in /_/src/Tasks/AssemblyDependency/ReferenceTable.cs:line 2905
   at Microsoft.Build.Tasks.ReferenceTable.VerifyArchitectureOfImplementationDll(String dllPath, String winmdFile) in /_/src/Tasks/AssemblyDependency/ReferenceTable.cs:line 2796

This is a regression resulting from #4418.

If anyone is in need of a self-contained general workaround:
  <!--
    work around https://github.com/microsoft/msbuild/issues/4547
    Remove after updating to Visual Studio 16.3 preview 2 or higher.
  -->
  <Target Name="WorkAroundMSBuild4547_Remove" BeforeTargets="ResolveAssemblyReferences">
    <ItemGroup>
      <_StaticLibraryProjectReference Include="@(_ResolvedProjectReferencePaths)" Condition="'$([System.IO.Path]::GetExtension(`%(Implementation)`))' == '.lib'" />
      <_ResolvedProjectReferencePaths Remove="@(_StaticLibraryProjectReference)" />
      <_ResolvedProjectReferencePaths Include="@(_StaticLibraryProjectReference)">
        <Implementation />
      </_ResolvedProjectReferencePaths>
    </ItemGroup>
  </Target>

  <Target Name="WorkAroundMSBuild4547_Restore" AfterTargets="ResolveAssemblyReferences">
    <ItemGroup>
      <_ResolvedProjectReferencePaths Remove="@(_StaticLibraryProjectReference)" />
      <_ResolvedProjectReferencePaths Include="@(_StaticLibraryProjectReference)" />
    </ItemGroup>
  </Target>
  <!-- End https://github.com/microsoft/msbuild/issues/4547 workaround -->

If you have more than one affected project, the easiest way to import it into all of them is to put that in a Directory.Build.targets file (surrounded by <Project></Project>, if you don't have one already).

repo: microsoft/msbuild


text:
[BUG] Package project for WPF + Blazor did not include wwwroot folder

Project
MSIX SDK
Describe the bug
Use this project https://github.com/jorgearteiro/BlazorDesktopWPF as the base project and add a "Windows Application Packaing Project" for it and create a bundle you will see the wwwroot folder is not included
To Reproduce
Steps to reproduce the behavior:
Expected behavior
All the razor resource should be included
Screenshots
If applicable, add screenshots to help explain your problem.
Platform
Visual studio 2022 preview 7
Additional context
Add any other context about the problem here.

@jorgearteiro could you please chime in here? Is this the expected behavior for your project?

I never tested the packaging project, but set this property to true in your project file

True

True

I hope this helps.

If the previous answer did not suffice or you still have questions on this, please feel free to reopen the issue.

authors: albertwoo anarvekar-msft jorgearteiro

repo: microsoft/msix-packaging


text:
Building the mssql-server-windows-developer dockerfile fails

Long story short, I'm new to docker and trying to add Full Text Search (FTS) to the windows SQL developer image and it's not working.
Docker 2.0.0.2 30215. Engine 18.09.1
Windows 10 1809
I've tried rebuilding the developer image to add FTS a lot of different times and different ways from different machines (All windows 10) and I'm at a loss. My primary dev machine is disconnected from the internet so I had copied the exe and box files and added in the needed COPY commands. I had issues with setup.exe not being recognized as a command (like this ) and lots of other silly things. The setup.exe usually rejects the /configurationfile=configuration.ini option. Most variations, if I get it to build at all, I end up with an image that fails to run. The container says "created" for all eternity (I just terminated one that said "created 10 days ago" and was still in the "Created" state) and forces me to restart the docker service as 'stop', 'kill', and 'rm' all fail.
I reached one point where I got a 'out of memory exception' and I discovered the distinction between hyper-v (windows 10) and process isolation (server) and the 1GB RAM limit on Hyper-V. I started using -m 4GB which helped some.
One time after that I was able to get the FTS and CU13 installed but I had stripped out the CMD commands. I then tried a FROM on that image with the CMD and got the 'forever created, never started' (FCNS) containers again.
I tried recreating the successful image and adding the CMD and other items I had stripped out but got more FCNS containers.
I also tried setting a FROM the existing developer image and running setup to add FTS but no dice there either.
I finally gave up and put docker on an internet machine and tried the dockerfile verbatim and it still failed. I ran it again and got a different error! I'm pretty sure I'm not insane (I hope) so something must be wrong with docker right?
The most recent time, it failed on step 9/12 with:

CreateComputeSystem 190fb331cadf01bacbf437fbc3a09a4d68055208fe8ab504b00931d8156a0372: hcsshim: timeout waiting for notification

The time before that:

CreateComputeSystem 5cd46655260f2b36904b1915b060319607bac5940281b4c4a8d485b072d5558c: This operation returned because the timeout period expired.

PS C:\Users\<user>\Desktop\SQL-dev> docker build . -m 4GB -t mssql
Sending build context to Docker daemon  11.26kB
Step 1/12 : FROM microsoft/windowsservercore
 ---> ea9f7aa13d03
Step 2/12 : LABEL maintainer "Perry Skountrianos"
 ---> Running in 601879c3377e
Removing intermediate container 601879c3377e
 ---> 0cb3abc42775
Step 3/12 : ENV exe "https://go.microsoft.com/fwlink/?linkid=840945"
 ---> Running in 7d9e3cc61dd9
Removing intermediate container 7d9e3cc61dd9
 ---> 004ec3c16126
Step 4/12 : ENV box "https://go.microsoft.com/fwlink/?linkid=840944"
 ---> Running in 517193e3ac72
Removing intermediate container 517193e3ac72
 ---> 8791da287c6d
Step 5/12 : ENV sa_password="_"     attach_dbs="[]"     ACCEPT_EULA="_"     sa_password_path="C:\ProgramData\Docker\secrets\sa-password"
 ---> Running in a75102447508
Removing intermediate container a75102447508
 ---> 3284fa21806f
Step 6/12 : SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
 ---> Running in e678e598e1ac
Removing intermediate container e678e598e1ac
 ---> ad9c76d97dc1
Step 7/12 : COPY start.ps1 /
 ---> 1f5ab693025e
Step 8/12 : WORKDIR /
 ---> Running in 9a735dd39ac2
Removing intermediate container 9a735dd39ac2
 ---> b8001c68d4b5
Step 9/12 : RUN Invoke-WebRequest -Uri $env:box -OutFile SQL.box ;         Invoke-WebRequest -Uri $env:exe -OutFile SQL.exe ;         Start-Process -Wait -FilePath .\SQL.exe -ArgumentList /qs, /x:setup ;         .\setup\setup.exe /q /ACTION=Install /INSTANCENAME=MSSQLSERVER /FEATURES=SQLEngine /UPDATEENABLED=0 /SQLSVCACCOUNT='NT AUTHORITY\System' /SQLSYSADMINACCOUNTS='BUILTIN\ADMINISTRATORS' /TCPENABLED=1 /NPENABLED=0 /IACCEPTSQLSERVERLICENSETERMS ;         Remove-Item -Recurse -Force SQL.exe, SQL.box, setup
 ---> Running in 190fb331cadf
CreateComputeSystem 190fb331cadf01bacbf437fbc3a09a4d68055208fe8ab504b00931d8156a0372: hcsshim: timeout waiting for notification
(extra info: {"SystemType":"Container","Name":"190fb331cadf01bacbf437fbc3a09a4d68055208fe8ab504b00931d8156a0372","Owner":"docker","IgnoreFlushesDuringBoot":true,"LayerFolderPath":"C:\\ProgramData\\Docker\\windowsfilter\\190fb331cadf01bacbf437fbc3a09a4d68055208fe8ab504b00931d8156a0372","Layers":[{"ID":"df180ec2-1108-5226-85d4-f88b5baef890","Path":"C:\\ProgramData\\Docker\\windowsfilter\\425ff525b0260c0e27bf9d008300d611d49a9ff5be94cc35a1c59325e3a8c36d"},{"ID":"26b8735b-a069-5716-818d-c1d14a872c72","Path":"C:\\ProgramData\\Docker\\windowsfilter\\6112d8eab7d9fb89386d487fa497c97320bc93b36a9725564dd92cc3e3e431eb"},{"ID":"88b049b8-00e5-56c1-acc0-39aee0222fba","Path":"C:\\ProgramData\\Docker\\windowsfilter\\f3556ebfa70f01246d2e6ddcc709002c8a5613f104d7196bb2aa12af3c6404c8"},{"ID":"f8b796b2-8554-5669-bf4c-8806488b0e82","Path":"C:\\ProgramData\\Docker\\windowsfilter\\959373b58f84e0bb81adc3a10c5def17211931a28cd152ea557466b842d16321"},{"ID":"82d9e35e-08dc-5539-bfd3-6231ad2b3db5","Path":"C:\\ProgramData\\Docker\\windowsfilter\\2c7349333557954c54547baa19198c549f25ac12b5e6168ee3686b8cbcd9ae26"},{"ID":"e042501d-c657-5114-b555-dfd2a1f66b5f","Path":"C:\\ProgramData\\Docker\\windowsfilter\\915ca32b87e045c85ab1506ccadb13a27c53f0e843b65ae80a1f40c617bffd40"},{"ID":"bdab63f4-b521-5ca1-ad3b-2174223c8866","Path":"C:\\ProgramData\\Docker\\windowsfilter\\e0621d19bc88bac0ed7e6a7cf28cd42b892cbcbcd56f415afbed13a4a1a376a4"},{"ID":"e1fb1b1b-e222-50a7-9cde-025db386f0fc","Path":"C:\\ProgramData\\Docker\\windowsfilter\\a17681a7c340b1f04cf2bc82b4bc4ddd092668eefc9cbcb513cb1b6dc8a6e363"},{"ID":"585ed0c9-f01c-57b1-bf25-82b106e3defe","Path":"C:\\ProgramData\\Docker\\windowsfilter\\874efe95b283614d91d0706c73c56334e87344ab06287236eca308b348de19cb"}],"MemoryMaximumInMB":4096,"HostName":"190fb331cadf","HvPartition":true,"EndpointList":["5D921656-0D23-4E1D-981A-29752E8CEE18"],"HvRuntime":{"ImagePath":"C:\\ProgramData\\Docker\\windowsfilter\\a17681a7c340b1f04cf2bc82b4bc4ddd092668eefc9cbcb513cb1b6dc8a6e363\\UtilityVM"},"AllowUnqualifiedDNSQuery":true})

How do I even begin troubleshooting a generic timeout? Why am I getting so many FCNS containers?
P.S. When docker 18.09.1 released, I tried doing process isolation with servercore:1809 but it said my OS didn't match (duh, but I thought the Windows 10 1809 kernel matched the server 2016 1809 kernel and that was sufficient?). I could try a Windows 10 container but that seems completely pointless. I'm working towards a Server 2016 VM to test this on, but it should work from Windows 10!

After more digging, seems my issue is related to hcsshim #152.

Hi,
Have you tried with the microsoft/mssql-server-windows-developer image. This image is compatible with Windows Server 2016 (Core, with Desktop) and Windows 10 (Professional, Enterprise - Anniversary Edition) OS Hosts. Please refer to microsoft/mssql-server-windows-developer.

Hi,
Have you tried with the microsoft/mssql-server-windows-developer image. This image is compatible with Windows Server 2016 (Core, with Desktop) and Windows 10 (Professional, Enterprise - Anniversary Edition) OS Hosts. Please refer to microsoft/mssql-server-windows-developer.

@forkazmoden, not to be rude but it doesn't seem like you read my post at all. From my initial description I'm trying to modify the microsoft/mssql-server-windows-developer image to add Full Text Search. If I could directly use the image, I would save myself the trouble of modifying it, but they have only included the base engine with the install.

@ducttapecoder-vt did you find a solution?  I'm running into the same issue trying to build a modified image of microsoft/mssql-server-windows-developer on Windows 10, with docker-desktop.

In my case it ended up being a bug with the docker hcshim and virtual
memory. Reducing the memory used on my system (down from 6gb to 4gb on an
8gb system) and playing with the -m parameter (e.g. "-m 2GB") on docker
build helped finally resolve the issue.
I found out that memory management between the various isolation types
(LCOW, hyper-v, and process) are quite different and have special
considerations. Hyper-v isolation (default for Win 10) defaults to only 1GB
of memory for containers which is quite low for SQL Server and the CU13
update failed due to OOM. Combined with the memory bug, a slow HDD, and
being new to docker and getting some of the docker file changes wrong made
it a bad time. Best of luck to you.
On Tue, May 14, 2019, 6:27 PM SubjectiveReality notifications@github.com
wrote:

@ducttapecoder-vt https://github.com/ducttapecoder-vt did you find a
solution? I'm running into the same issue trying to build a modified image
of microsoft/mssql-server-windows-developer on Windows 10, with
docker-desktop.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/mssql-docker/issues/420?email_source=notifications&email_token=AJBTD6W7SD65WWMFVPK7GUTPVM4EJA5CNFSM4GWU5I6KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVM7CEA#issuecomment-492433680,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AJBTD6QGO2K2PC4VIKE3QULPVM4EJANCNFSM4GWU5I6A
.

Interesting information, thank you!  I edited my comment above as I found my solution.

repo: microsoft/mssql-docker


text:
Suggesion: Traefik Documentation

My suggestion is to a section Traefik in NavContainerHelper.md.
My first draft would be:
Docker containers are given an internal IP address on a special internal network on the local machine and they can only be reached locally. Traefik is an application proxy that allows you to run multiple Business Central Docker on a single server and make them accessible externally. A Business Central Service such as Web Client, SOAP, OData, Dev, Snapshot Debugger, etc. will receive external names for each internal port of a service.
To make this accessible, there are two ways of providing an SSL certificate.

You can use Lets Encrypt. This option requires your server to be publicly accessible.
Or you can Bring your own certificate.

Lets Encrypt
Setup-TraefikContainerForBcContainers -ContactEMailForLetsEncrypt admin@mycompany.com -PublicDnsName dockerhub.mycompany.com

Bring your own certificate
To use an SSL certificate, you can use (OpenSSL)[https://slproweb.com/products/Win32OpenSSL.html] to
to convert your PFX file into a CRT and KEY file.
After installing OpenSSL, you can use the console to transfer them.
openssl pkcs12 -in "certificate.pfx" -clcerts -nokeys -out "certificate.crt"

Needs the pfx phase

openssl pkcs12 -in "certificate.pfx" -nocerts -out "certificate-encrypted.key"

Needs the passphase of the pfx
Set a passphase for the key file

openssl rsa -in "certificate-encrypted.key" -out "certificate.key"

Needs a passphase for the key file

To setup the traefik, you need to run Setup-TraefikContainerForBCContainers
Setup-TraefikContainerForBCContainers -PublicDnsName dockerhub.mycompany.com -CrtFile certificate.crt -CrtKeyFile certificate.key

After that the you need to add -useTraefik when creating a Docker Container:
$url = Get-BCArtifactUrl -select Latest -type OnPrem -country w1
$cred = Get-Credential
New-BcContainer -accept_eula -artifactUrl $url -Credential $cred -auth UserPassword -useTraefik -useSSL

What do you think and what should be added?

That would have been indeed very helpful!
Some comments: passphrase I think it is ;)
openSSL is part of a normal nextnextnextnext git installation - which I think almost everybody should have installed in the meantime: find it there -> C:\Program Files\Git\mingw64\bin
Anyhow, I also would like to see this whole thing shifted to traefik v2 ... the mechanics as such are almost the same, but labels have to be different, and the inital traefik yml/toml needs some love I would think?
so that would be really awesome ;)

I totally agree with Kristof, that shifting to Traefik v2.0 would be a great thing!

@KristofKlein @DBiernat Sure, but I can't really help with Traefik v2.0. Since this issue is about adding Traefik documentation, my suggestion would be to add your suggestion for switching to Traefik v2.0. Depending on the outcome, I would recommend adding the documentation for the current version or for v2.0.

@DanielGoehler muuhahaha - took over the issue :D
fun aside, you also asked what is missing. I think what I would have loved to know (quite a while ago) is :

if you are on win 11 you need to make your own traefik image such that it support process isolation (as hyperv did not work for me : no access within the container to the npipe)
the more clear cut between "open" machine where a lets encrypt just works fine or what it takes for a local network installation.

you do have the openssl components mentioned in here, which for me was the most confusing part how to do this in a closed, local dev machine... in fact it is as simple as just use your current hostname
[System.Net.Dns]::GetHostByName($env:computerName).HostName
which you can use also with openssl to create a certificate just for your host:
openssl.exe genrsa -des3 -out server.key 2048 openssl.exe rsa -in server.key -out server.key openssl.exe req -sha256 -new -key server.key -out server.csr -subj "/CN=YOURHOSTNAMEHERE" openssl.exe x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

@DBiernat @KristofKlein @kine Please open a separate issue for your unrelated but perfectly valid issues that are not related to my Traefik documentation proposal.

authors: DBiernat DanielGoehler KristofKlein

repo: microsoft/navcontainerhelper


text:
AttributeError: 'torch._C.Node' object has no attribute 'schema'

I use the tool to try to prue my model such as (https://github.com/microsoft/nni/blob/dab51f799f77aa72c18774faffaedf8d0ee2c977/examples/model_compress/pruning/admm_pruning_torch.py)
I only change the model(with restnet) and the dataloader:
But now there is some problem when I use ModelSpeedup
File "", line 1, in
ModelSpeedup(model, torch.randn([1, 2, 224, 224]).to(device), masks).speedup_model()
File "D:\anaconda3\lib\site-packages\nni\compression\pytorch\speedup\compressor.py", line 543, in speedup_model
self.infer_modules_masks()
File "D:\anaconda3\lib\site-packages\nni\compression\pytorch\speedup\compressor.py", line 380, in infer_modules_masks
self.update_direct_sparsity(curnode)
File "D:\anaconda3\lib\site-packages\nni\compression\pytorch\speedup\compressor.py", line 228, in update_direct_sparsity
func = jit_to_python_function(node, self)
File "D:\anaconda3\lib\site-packages\nni\compression\pytorch\speedup\jit_translate.py", line 554, in jit_to_python_function
return trans_func_dict[node.op_type](node, speedup)
File "D:\anaconda3\lib\site-packages\nni\compression\pytorch\speedup\jit_translate.py", line 488, in generate_aten_to_python
schema = c_node.schema()
AttributeError: 'torch._C.Node' object has no attribute 'schema'

i think the version of pytorch which you are using is less than 1.8.
the ModelSpeedup supports pytorch >= 1.9 on nni 2.9, and it will support pytorch >= 1.8 on next nni 2.10,

您发给我的信件已经收到。--------------------------------------------梁沛阳的私人邮箱This is an automatic reply, confirming that your e-mail was received.Thank you

@sunpeil Thanks for raising this issue. Could you close this issue if you had not any problem?

authors: Lijiaoa Louis-J sunpeil

repo: microsoft/nni


text:
Add LSQ quantizer

This PR contains an implementation of LSQ quantizer (Learned Step Size Quantization, ICLR 2020, see here). It uses gradients to update quantization scales and can achieve sound results in our production environment, especially for lower bits.
In the mnist experiment, it can get about 99.20% top1 acc. And the results on imagenet-1k is on going.

I have added codes about using the first batch data to initialize activation scale. After that, we can get about 99.20% top1 acc with the provided example.
Also, I have tested exporting the model to TensorRT. The transformed TensorRT model get almost the same acc with the PyTorch model.

Looks good. Completing related doc is necessary. Please refer to overview, quantization and Quantizer. Feel free to ask me if have any questions.

Docs have been added:)

@chenbohua3 looks great, thanks for your contribution!

authors: QuanluZhang chenbohua3 linbinskn


text:
Provide the ability to download the logs specific to a job

The proposal is to redirect agent logs to a blob and make it available via the cli.
On the agent
The redirection can happen in onefuzz-telemetry by adding a logic to upload to an append blob.
We should consider splitting the blob into mutliple files to prevent the creation of single very large blob file. The x-ms-blob-append-offset property of the Append block can provide the data needed to decide to create a new log file.
In the cli
We can add a new command under debug: onefuzz debug log get

Are we going to set a retention period for these blobs as well? We could probably mirror log analytics and do 90 days.

authors: chkeita tevoinea

repo: microsoft/onefuzz


text:
Basic devcontainer configuration

Summary of the Pull Request
Make it easier to get up and running as a contributor: provides a devcontainer configuration with dotnet, rust, and python preinstalled.
PR Checklist

[ ] Applies to work item: #xxx
[x] CLA signed. If not, go over here and sign the CLI.
[ ] Tests added/passed
[x] Requires documentation to be updated
[ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Info on Pull Request
Devcontainer/Codespaces configuration files, as generated by VS Code extension; postCreateCommand is custom to ensure that dotnet packages are installed and you aren’t greeted with PROBLEMS upon first view!
Validation Steps Performed
Start devcontainer from VS Code. Dockerfile can also be validated upon PR but that requires a bunch more work 😉

Oh, thanks @tevoinea


text:
Release 9.1.0

Summary of the Pull Request
OneFuzz release 9.1.0
Note: OneFuzz release 9.0.0 had issues in our release pipeline, we'll be skipping 9.0.0's release to release ver 9.1.0 instead
9.1.0
Added

Agent: Added fuzz tests for coverage recording #3322
Agent: Added version checking in local tasks #3517
Agent: Create directories from template specification in local task if they don't exist #3522
CLI: Added a new command for template creation in the local task onefuzz-task local create-template #3531
CLI/Deployment/Service: Support for retention policies on containers #3501
Service: Add onefuzz service version to job created events #3504

Changed

Agent: Improved handling of unexpected breakpoints #3493
Agent: Updated windows interceptor list #3528
Agent: Reporting coverage on task start up, ensuring coverage_data is emitted at the beginning of every task instead of when new_coverage is identified #3502
CLI: Disable repro and debug VM CLI commands. (#3494)
CLI/Deployment: Updating onefuzz cli requirements.txt to accept >= onefuzztypes versions #3477, #3486
Service: Improve area/iteration path validation in notifications #3489
Service: Remove feature flag from heartbeat metrics #3505

Fixed

Agent: Terminate process on timeout in Windows agents for the coverage task #3529
Agent: Disable repro and debug VM CLI commands #3494
Agent/Service: Bumped several C#, Python, and Rust dependencies #3425, #3424, #3411, #3437, #3436, #3435, #3478, #3484, #3414, #3474, #3434, #3488, #3503, #3520, #3521
Service: Removed unnecessary method argument in notifications processing #3473
Service: Ignore regression work item updates when the work item is in some states #3532

Codecov Report

Merging #3540 (bc255db) into main (434a435) will decrease coverage by 8.18%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #3540      +/-   ##
==========================================
- Coverage   39.03%   30.86%   -8.18%
==========================================
  Files         301      135     -166
  Lines       36843    14659   -22184
==========================================
- Hits        14382     4524    -9858
+ Misses      22461    10135   -12326

see 166 files with indirect coverage changes

authors: AdamL-Microsoft codecov-commenter


text:
fix(tests): test code cleanup, redundant variables

Rebased and updated #1150

It looks like InnerTextShouldThrow is failing across the board.

@kblok thanks for looking at this - I've pushed the change we talked about

authors: avodovnik kblok

repo: microsoft/playwright-sharp


text:
[BUG] pf run create does not output print statements to the console

Describe the bug
When invoking a pf run create command that fires off a flow, print statements inside of flow tools are not being output to the console or the logs.txt file
Example command:
pf run create --name test_run1 --flow ./flow --data test_data.jsonl --stream

Where test_data.jsonl contains several lines of test input for bulk testing. The command runs without error.
How To Reproduce the bug
This bug occurs consistently. It can be reproduced by invoking a pf run create command that fires off a flow. The flow must contain at least 1 node that is a python tool that has a print() function inside of it that executes when that node is traversed.
Example command:
pf run create --name test_run1 --flow ./flow --data test_data.jsonl --stream

Expected behavior
I would expect Python print() function calls to be output to the logs and console when executed during the run.
Screenshots

Running Information(please complete the following information):

Promptflow Package Version using pf -v:  1.6.0
Operating System: Mac OS 14.4.1
Python Version using python --version: python==3.10.6

Hi @aaronjolson , this is our current by design behavior. Because when executing batch runs, multiple rounds of runs will be triggered based on different input lines, to avoid std out flood in terminal or in logs we only persist them in each line run's node artifacts. You can find them with the following steps:

Go to output path:

Under node_artifacts, select the node, line run jsonl output:

Find the std out in run_info.logs

Hello @aaronjolson, starting from version 1.7.0, except node_artifacts, a new option is finding each line's log under flow_logs.
We record customer print content as log with pattern stdout> and stderr> in there.
You can find them under output_path as @D-W-  mentioned.

authors: D-W- aaronjolson huaiyan

repo: microsoft/promptflow


text:
[BUG] [VSCode Extension] Unexpected token error, Category Info ParentContainsErrorRecordException

Describe the bug
A clear and concise description of the bug.
I'm attempting to add Azure OpenAI Connection. When I select "Create Connection" in the new_AzureOpenAI_connection.yaml file after updating the applicable variables, I receive the below issue:
Unexpected token 'c:\Users<username>.vscode\extensions\prompt-flow.prompt-flow-1.20.1\pfutil\pfutil.py' in expression or statement.
+ CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken
Reviewing the pfutil.py file, I notice there is a warning indicating that "Import "_pf_vsc_main" could not be resolved (Pylance(reportMissingImports)
When reviewing all py scripts in pfutil folder, I notice the same warning occurs as above.
How To Reproduce the bug
Steps to reproduce the behavior, how frequent can you experience the bug:

Setup VS Code in local development environment, install Prompt flow for VS Code extension
Install dependencies in working environment (virtual): promptflow, promptflow-tools, promptflow-core, promptflow-azure, promptflow-devkit, promptflow-tracing
Create new Azure OpenAI connection in Promptflow extension's "CONNECTIONS" pane
Select "Create connection" in new_AzureOpenAI_connection.yaml file

Screenshots

On the VSCode primary side bar > the Prompt flow pane > quick access section. Find the "install dependencies" action. Please it and attach the screenshots there.

Please provide other snapshots about the key steps to repro the issue.

Issue when selecting "Create connection" in new_AzureOpenAI_connection.yaml file:

Warning:

Warning for _pf_vsc_custom_connection_config.py

Environment Information

Promptflow Package Version using pf -v: [e.g. 0.0.102309906]

Operating System: Microsoft Windows 10 Enterprise

Python Version using python --version: Python 3.12.3

VS Code version: 1.92.1

Prompt Flow extension version: v1.20.1

Additional context
Add any other context about the problem here.

Execution policy = RemoteSigned
Keyring installed in virtual environment via pip
Python PATH environment variable is configured

I'm not entirely sure whether this issue relates to the extension, but additional guidance would be useful. When I execute pfutil.py through my virtual environment, no issues are present. However, when I the extension executes pfutil.py when I create a new connection, the issue is present.

Hi Team, I am also getting same issue for open ai connections type while i do in local, can anyone help me out


text:
No tiles in tileset picker switching from text-> blocks

Describe the bug
When I switched from python to blocks to select a tile from the tileset picker, there were no tiles other than transparent

oh noo

The game: https://makecode.com/_7odW60g1jJor
Desktop (please complete the following information):

OS: Windows
Browser: Chrome
Version: 83.0.4103.116

This happens in JS and Python. I'm making the "set on random tile" line in text first, then switching over

And it doesn't know what my tilemap is now :(

repo: microsoft/pxt-arcade


text:
remove invalid links / info in csintro courses

The links on these pages all either stall out or point to uncontrolled ads pages so just pointing to forum

@Jaqster is this okay to merge?

Yes - let's merge!

authors: Jaqster jwunderl


text:
Auth system to use shared local storage

Update auth system to use the pxt server-backed local storage.

LGTM but imo it is very confusing that all of these functions are in a namespace with "localhost" in it.

Agreed. I really struggled to find a good name. I don't love "localhost". If you have a suggestion I'm all ears.

Alternative names I considered:

pxt.storage.routed -> because the calls are routed one direction or the other.
pxt.storage.pxt -> because the calls go to the pxt server, sometimes. Having "pxt" appear twice in the namespace felt odd.
pxt.storage.local -> because the calls go to local storage one way or another. This one would have been nice except that "local" is already used in another context in the same file.
pxt.storage.dev -> because the calls have special behavior in development scenarios. Seemed odd for code shipping to production exist in a "dev" namespace.

repo: microsoft/pxt


text:
Add "play with friends" button to home page

Adds a new button to Arcade's home screen nav bar:

responsive:

Clicking the button takes the user to the multiplayer join page.
The tool button margins are wider than what's in the design, but leaving it for now. Changing this in the app would have effects beyond this view, so I'd prefer to tackle it as it's own item.

I thought we were going to have a row of Multiplayer games on the home page, and that was how we were going to promote the experience?  I'm a little hesitant to clutter up the top nav bar with more buttons.  Can we take some time to discuss?

I thought we were going to have a row of Multiplayer games on the home page, and that was how we were going to promote the experience? I'm a little hesitant to clutter up the top nav bar with more buttons. Can we take some time to discuss?

We plan to add a row of multiplayer games as well. We settled on this design some time ago, but it isn't too late to reopen the conversation. Will schedule it.
In the meantime you may like to review the list of multiplayer changes planned for this release, in case there are any more concerns: https://github.com/microsoft/pxt-arcade/issues?q=is%3Aissue+is%3Aopen+label%3Amultiplayer+milestone%3AJan-winter-Release

Update! We aren't going to add a play with friends button, but go with a banner instead. Still, this PR has some changes I want to keep. I've removed the header button and kept the other changes.

authors: Jaqster eanders-ms


text:
Add C# generation and runtime support for "[value, size = n]" array constructor

This adds C# generation and runtime support for microsoft/qsharp-compiler#856.

Test

@bettinaheim @cesarzc @ScottCarda-MS @swernli ping

authors: osostest samarsha

repo: microsoft/qsharp-runtime


text:
How to add custom user control using C++/WinRT

The UI module docs specify how to create a custom user control with C# but not with C++. Adding Blank User Control (C++/WinRT) item to the project does not work – the module itself will compile, but the app using such module will not build, failing with:
TestApp\windows\TestApp\Generated Files\XamlTypeInfo.g.cpp(695,44): error C2039: 'NativeModuleSample': is not a member of 'winrt'

Is there a way to add such control to the project?

@bzoz This will be documented when 0.64 ships, but here is the fix in the meantime: https://microsoft.github.io/react-native-windows/docs/next/native-code#compile-error-xamlmetadataprovider-is-not-a-member-of-winrtmymodulename
I also added it to the cppwinrt docs: https://docs.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/troubleshooting#symptoms-and-remedies
LMK how this works!

There is no *_XamlTypeInfo.h file anywhere in the solution. But just adding
#include <winrt/NativeModuleSample.h>

(NativeModuleSample is both the namespace of the module, this is the same code as in #314) fixes the build. I haven't gotten yet to actually using the custom control in the app, but at least it builds now.

Oh, yeah - I'm using autolinking for this.

authors: asklar bzoz

repo: microsoft/react-native-windows-samples


text:
Fix command error in rnm-getting-started.md

An error occurred in Install React Native for macOS.
command not found: cd..

"cd" command needs space between args.
- cd macos && pod install && cd..
+ cd macos && pod install && cd ..

Thanks @shoken0x


text:
"ReverseProxy" is the simplest and most practical way is to support powershell !

"ReverseProxy" is the simplest and most practical way is to support powershell !
Can ReverseProxy support command interface support?
If the reverse proxy can support command interface support, it is excellent.
powershell 7.1 preview uses .net core 5,
powershell 7.0 uses .net core 3.1,
Powershell uses ConvertFrom-Json to convert json to .net hash table object.
I think the simplest and most practical way is:
release ReverseProxy dll and make a powershell module to https://www.powershellgallery.com/
Use the powershell command to add .net object:
Add-ReverseProxy -name 'server1' -ipaddress '192.168.0.1'
Remove-ReverseProxy -name 'server1' -ipaddress '192.168.0.1'
and then sync "server1.json" to the disk configuration file every 10 seconds. The format of the configuration file is not important.
Start-ReverseProxy -listenip '1.2.3.4'
Stop-ReverseProxy
Add-UrlRewrite -name 'aaa' -base 'http://192.168.0.1' -url '/a/b'  -Rewriteto 'xxx'
Remove-UrlRewrite
by the way:
Recently, my project needs a reverse proxy. When will it be released?

good lssues!!!

Different customers want different features - I  respect the desire for a powershell configuration API. That will need to have a way to talk to the proxy service, which may well be on a different host or in a container, and so I would suggest that a starting point would be to have a REST or gRPC endpoint that can configure the proxy. A powershell module would then be able to talk to that API to do the configuration. The biggest complication will be auth - as you want to authenticate and authorize who can change proxy config.
#125 tracks a REST/gRPC endpoint.

In terms of shipping, then goal is for 1.0 to be around the same time as .NET 5. It depends on what feature sets are required by customers for it to be considered a viable product.

Q: How to let powershell add a backend server to YARP?
A:
1 powershell 7.1 preview (based on .net core 5) Call the powershell YARP module. The module adds a backend through the static method of .net core 5 of YARP.
2 YARP listen 127.0.0.1:12345, and then powershell adds the back-end server through REST without auth
Q: Will YARP provide compatibility with .net core 3.1?
A:
will not. You can use the .net core3.1 client to access YARP through the command line, after ssh, there is a powershell command line interface. This command line interface is compatible with any external calls such as win, linux, python, etc.

api getway "kong" urlrewrite use 【nginx + lua + 127.0.0.1+curl】，we can use 【yarp + powershell + .net core method,property】

Not something we’re going to build into yarp, at least not in v1. I think it’s fine to fork or build an addon for something like this and see where the interest lies.

@davidfowl   Powershell is here to help yarp, not to ask yarp for something.
1 powershell helps yarp to expose .net core class, method, property, and you do n’t need to do anything at first.
Benefits are:
You can change the api and configuration file format for each version every day without considering compatibility and without telling the user. You only need to write a sample ps1 script:
[YARP.version5] :: add_urlrewrite ('http: // 11 / aa / bb', 'http: // 22 / cc / dd')
2 In the end you need to make a powershell module:
Add-UrlRewrite -name 'aaa' -base 'http://192.168.0.1' -url '/ a / b' -Rewriteto 'xxx'
You can assign this task to others, or do it one year later . it just makes the command look more elegant, without this module, you can do it with the above command.

authors: CheneyYang davidfowl kasini3000 samsp-msft

repo: microsoft/reverse-proxy


text:
Rate limiting is not working

Describe the bug
Rate limiting is not working, my request are not being blocked.
To Reproduce

builder.Services.AddRateLimiter(options =>
{
    options.AddFixedWindowLimiter("ApiPolicy", opt =>
    {
        opt.Window = TimeSpan.FromMinutes(1);
        opt.PermitLimit = 1;
        opt.QueueProcessingOrder = QueueProcessingOrder.OldestFirst;
        opt.QueueLimit = 5;
    });
});

app.MapReverseProxy();
app.UseRateLimiter();

      "Demo_BFF": {
        "ClusterId": "Demo_BFF_Cluster",
        "RateLimiterPolicy": "ApiPolicy",
        "Match": {
          "Path": "/demo/bff/{**catch-all}"
        }
      },

Got Exceptions? Include both the message and the stack trace
-->
Further technical details

Include the version of the packages you are using
The platform (Linux/macOS/Windows)

Can you create a minimal runnable example that reproduces the issue?

Not at keys to provide repro, but I notice this too right before the end of year break. I specifically saw that there weren’t any Metrics being emitted for any of the individual routes but hadn’t gotten around to investigating further. The only metrics were for the overall rate limiter applied before the proxy in the pipeline.

authors: MihaZupan oricawalid rkargMsft


text:
Shell commands in documentation contains syntax errors

Hi, thank you for working on this project.
As a developer investigating using Rush on a project
And reading the documentation
I want to be able to follow the getting started instructions
In order to see Rush in action
Given the shell commands in the Rush documentation
For example $ npm install -g @microsoft/rush
When I copy and paste them into my terminal
I expect that the commands will work
But I encounter these errors
In fish shell (my main terminal)

fish: Expected a variable name after this $

And in a Bash shell

zsh: command not found: $

Operating system: Mac OS
Terminal: iTerm

$ is the stereotypical shell prompt. For example:

You are not supposed to type that character.  We include it to distinguish typed inputs versus program outputs or comments, for example:
$ rush scan

Rush Multi-Project Build Tool 5.68.1 - https://rushjs.io
Node.js version is 14.17.0 (LTS)

Starting "rush scan"

ERROR: You must run "rush scan" in a project folder containing a package.json
file.

Looking at some other documentation websites though, it is common to omit the $.
docs.microsoft.com uses separate boxes for inputs/outputs:
https://docs.microsoft.com/en-us/learn/modules/bash-introduction/3-bash-commands

ubuntu.com uses screenshots when they need to show outputs:
https://ubuntu.com/tutorials/command-line-for-beginners#5-moving-and-manipulating-files

🤔Maybe we can improve this.

Thank you for taking such a detailed comparison with other approaches. I'm familiar with $ , > and other hints for the terminal but I believe we can have a better DX. For example, after seeing the first error I understood that I had to -

re-paste the command in the terminal
go back to the start of the command
remove $

And repeat this for every command. Even with terminal shortcuts and history, there are still additional steps to using the docs.

Okay, @iampeterbanjo you have persuaded me. 😁  Fixed in https://github.com/microsoft/rushstack-websites/pull/87

authors: iampeterbanjo octogonz

repo: microsoft/rushstack-websites


text:
Add :require-macros to cljc namespaces

I love the library and use it everywhere in https://github.com/sicmutils/sicmutils.
The only issue I have is that to use the macros via cljs, I have to add :include-macros true to my require form: https://github.com/sicmutils/sicmutils/blob/b48ef1f73055b8dd845c91c9e300cec150b014e4/test/sicmutils/numerical/unimin/bracket_test.cljc#L8
The change in this PR removes that need for library consumers, tidying up the require-side API.

@microsoft-github-policy-service agree

repo: microsoft/same-ish


text:
Adopt VS Code's Marketplace pre-release flow

I got surprised that I get a notification for updates, which we don't recommend as in this case I didn't do anything SARIF related. It also reminded me that I had to opt-in for the pre-release builds with a setting.

The recommended flow is this: https://github.com/microsoft/vscode-discussions/discussions/2 and would simplify your code and releases.

@digitarald Thanks for the heads up. It looks like extension pre-releases has been available since Nov 2021. Will look at migrating our pre-release actions to take advantage of this. The lack of support for semver pre-release tags is inconvenient; hope that comes soon.
You mentioned you "didn't do anything SARIF related", implying you did not opt-in for pre-release (aka insiders) builds, yet still got the notification. Is that correct? If so, there's a bug we need to chase.

@jeffersonking

You mentioned you "didn't do anything SARIF related", implying you did not opt-in for pre-release (aka insiders) builds

No worries, I did opt-in. Notifications telling users that they updated doesn't match https://code.visualstudio.com/api/ux-guidelines/notifications .

@digitarald We appreciate the feedback. Thanks.

authors: digitarald jeffersonking

repo: microsoft/sarif-vscode-extension


text:
"RuntimeError: Event loop is closed" on windows Python 3.10

Describe the bug
A clear and concise description of what the bug is.
Followed the python README tutorials and other examples provided, it alwasys ran into a runtime error:
Exception ignored in: <function _ProactorBasePipeTransport.del at 0x00000289E4B2C550>
Traceback (most recent call last):
File "C:\Program Files\Python3.10\lib\asyncio\proactor_events.py", line 116, in del
self.close()
File "C:\Program Files\Python3.10\lib\asyncio\proactor_events.py", line 108, in close
self._loop.call_soon(self._call_connection_lost, None)
File "C:\Program Files\Python3.10\lib\asyncio\base_events.py", line 750, in call_soon
self._check_closed()
File "C:\Program Files\Python3.10\lib\asyncio\base_events.py", line 515, in _check_closed
raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
To Reproduce
Steps to reproduce the behavior:
on Windows system, python version 3.10.4
Follow any of the python examples given in the tutorial, it always run into this Runtime Error
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. Windows]
IDE: [e.g. Visual Studio, VS Code]
NuGet Package Version [e.g. 0.1.0]

Additional context
Add any other context about the problem here.

Thanks for adding the fix to this! We'll take a look soon!

I believe this can be closed based on #1416 being merged.

authors: alexchaomander cschadewitz imfuli

repo: microsoft/semantic-kernel


text:
++!Full Video Mường Thanh Tầng 4 Clip Có Gì

Tầng 4 Mường Thanh nơi được quan tâm nhất hôm nay
Watch 🟢 ➤ ➤ ➤ 🌐 Click Here To link (Full Viral Video Link)
🔴 ➤►DOWNLOAD👉👉 (Full Viral Video Link)
MẸO : Để xem được video clip chất lượng rõ nét hơn. Mọi người nhấp vào video và chọn biểu tượng "Bánh Răng" chọn tiếp chất lượng "1080P" hoặc "720P" nhé
👉 Chú Ý : Để xem full các video clip nóng trên trang web này, anh em có thể lên Google search từ khóa "Clip HOT XX" hoặc có thể... Click vào đây để xem clip hot hôm nay
Clip Nhạy Cảm Tại Khách Sạn Tầng 4 Mường Thanh: Vụ Việc Gây Chấn Động
Với sự phát triển mạnh mẽ của công nghệ và mạng xã hội, những vụ việc liên quan đến clip nhạy cảm ngày càng trở nên phổ biến và gây xôn xao dư luận. Mới đây, một clip nhạy cảm được ghi lại tại Khách sạn Tầng 4 Mường Thanh đã gây ra nhiều tranh cãi và lo ngại trong cộng đồng.
Nội Dung Vụ Việc
Theo thông tin ban đầu, clip ghi lại những hình ảnh nhạy cảm giữa hai người ở khu vực khách sạn, đã nhanh chóng bị rò rỉ và lan truyền trên mạng xã hội. Dù chưa xác định được nguồn gốc và lý do của việc phát tán clip này, nhưng ngay lập tức, vụ việc đã thu hút sự chú ý của đông đảo cư dân mạng và các phương tiện truyền thông.
Phản Ứng Của Cộng Đồng
Sự việc này đã làm dậy sóng cộng đồng mạng với nhiều ý kiến trái chiều. Một số người chỉ trích hành vi xâm phạm đời tư cá nhân và yêu cầu phải có biện pháp xử lý nghiêm khắc đối với người đứng sau việc phát tán clip. Trong khi đó, cũng có những ý kiến cho rằng, những tình huống như vậy là điều không thể tránh khỏi trong thời đại số hiện nay.
Hệ Lụy Từ Vụ Việc
Clip nhạy cảm này không chỉ ảnh hưởng đến danh tiếng và cuộc sống riêng tư của những người trong clip, mà còn tạo ra những hệ lụy khó lường cho Khách sạn Mường Thanh. Nhiều người đã bày tỏ lo ngại về khả năng bị tổn hại đến uy tín cũng như sự tin tưởng của khách hàng đối với khách sạn.
Phản ứng của Đơn Vị Quản Lý Khách Sạn
Trước tình hình này, Ban quản lý khách sạn Mường Thanh đã có những phản hồi chính thức, khẳng định rằng họ sẽ phối hợp với các cơ quan chức năng để điều tra nguyên nhân và xử lý vụ việc. Đồng thời, họ cũng nhấn mạnh cam kết bảo vệ quyền lợi của khách hàng và đảm bảo an toàn cho tất cả những người lưu trú tại khách sạn.
Kết Luận
Vụ việc clip nhạy cảm tại khách sạn Tầng 4 Mường Thanh không chỉ là vấn đề của cá nhân mà còn là sự quan tâm lớn đối với xã hội về quyền riêng tư và an ninh thông tin. Trong thời đại số, việc bảo vệ bản thân trước những rủi ro về đời tư càng trở nên cần thiết hơn bao giờ hết. Hy vọng rằng vụ việc này sẽ sớm được làm rõ và những kẻ đứng sau sẽ bị xử lý theo đúng quy định của pháp luật, đồng thời, rút ra bài học cho mọi người về việc bảo vệ chính mình trong thế giới số.
Tags: Video HOT Tầng 4 Mường Thanh mới nhất hiện nay - link gốc Tầng 4 Mường Thanh không che đang được chia sẻ cũng như tìm kiếm - Link full Tầng 4 Mường Thanh cô gái được dân mạng quan tâm nhất - Phim HOT Tầng 4 Mường Thanh không che bản gốc - clip nóng Tầng 4 Mường Thanh
*Lưu ý: Tất cả thông tin trên đây đều không phải là thực tế và chỉ mang tính chất tham khảo
Tầng 4 Mường Thanh nơi được quan tâm nhất hôm nay
Watch 🟢 ➤ ➤ ➤ 🌐 Click Here To link (Full Viral Video Link)
🔴 ➤►DOWNLOAD👉👉 (Full Viral Video Link)
MẸO : Để xem được video clip chất lượng rõ nét hơn. Mọi người nhấp vào video và chọn biểu tượng "Bánh Răng" chọn tiếp chất lượng "1080P" hoặc "720P" nhé
👉 Chú Ý : Để xem full các video clip nóng trên trang web này, anh em có thể lên Google search từ khóa "Clip HOT XX" hoặc có thể... Click vào đây để xem clip hot hôm nay
Clip Nhạy Cảm Tại Khách Sạn Tầng 4 Mường Thanh: Vụ Việc Gây Chấn Động
Với sự phát triển mạnh mẽ của công nghệ và mạng xã hội, những vụ việc liên quan đến clip nhạy cảm ngày càng trở nên phổ biến và gây xôn xao dư luận. Mới đây, một clip nhạy cảm được ghi lại tại Khách sạn Tầng 4 Mường Thanh đã gây ra nhiều tranh cãi và lo ngại trong cộng đồng.
Nội Dung Vụ Việc
Theo thông tin ban đầu, clip ghi lại những hình ảnh nhạy cảm giữa hai người ở khu vực khách sạn, đã nhanh chóng bị rò rỉ và lan truyền trên mạng xã hội. Dù chưa xác định được nguồn gốc và lý do của việc phát tán clip này, nhưng ngay lập tức, vụ việc đã thu hút sự chú ý của đông đảo cư dân mạng và các phương tiện truyền thông.
Phản Ứng Của Cộng Đồng
Sự việc này đã làm dậy sóng cộng đồng mạng với nhiều ý kiến trái chiều. Một số người chỉ trích hành vi xâm phạm đời tư cá nhân và yêu cầu phải có biện pháp xử lý nghiêm khắc đối với người đứng sau việc phát tán clip. Trong khi đó, cũng có những ý kiến cho rằng, những tình huống như vậy là điều không thể tránh khỏi trong thời đại số hiện nay.
Hệ Lụy Từ Vụ Việc
Clip nhạy cảm này không chỉ ảnh hưởng đến danh tiếng và cuộc sống riêng tư của những người trong clip, mà còn tạo ra những hệ lụy khó lường cho Khách sạn Mường Thanh. Nhiều người đã bày tỏ lo ngại về khả năng bị tổn hại đến uy tín cũng như sự tin tưởng của khách hàng đối với khách sạn.
Phản ứng của Đơn Vị Quản Lý Khách Sạn
Trước tình hình này, Ban quản lý khách sạn Mường Thanh đã có những phản hồi chính thức, khẳng định rằng họ sẽ phối hợp với các cơ quan chức năng để điều tra nguyên nhân và xử lý vụ việc. Đồng thời, họ cũng nhấn mạnh cam kết bảo vệ quyền lợi của khách hàng và đảm bảo an toàn cho tất cả những người lưu trú tại khách sạn.
Kết Luận
Vụ việc clip nhạy cảm tại khách sạn Tầng 4 Mường Thanh không chỉ là vấn đề của cá nhân mà còn là sự quan tâm lớn đối với xã hội về quyền riêng tư và an ninh thông tin. Trong thời đại số, việc bảo vệ bản thân trước những rủi ro về đời tư càng trở nên cần thiết hơn bao giờ hết. Hy vọng rằng vụ việc này sẽ sớm được làm rõ và những kẻ đứng sau sẽ bị xử lý theo đúng quy định của pháp luật, đồng thời, rút ra bài học cho mọi người về việc bảo vệ chính mình trong thế giới số.
Tags: Video HOT Tầng 4 Mường Thanh mới nhất hiện nay - link gốc Tầng 4 Mường Thanh không che đang được chia sẻ cũng như tìm kiếm - Link full Tầng 4 Mường Thanh cô gái được dân mạng quan tâm nhất - Phim HOT Tầng 4 Mường Thanh không che bản gốc - clip nóng Tầng 4 Mường Thanh
*Lưu ý: Tất cả thông tin trên đây đều không phải là thực tế và chỉ mang tính chất tham khảo

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

fgfdgfg

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

VVF

⬆
⬆
⬆

⬆
⬆
⬆
        ✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅

**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
✅▶ 𝗥𝗲𝗮𝗹𝗹𝘆 𝗔𝗺𝗮𝘇𝗶𝗻𝗴 𝗬𝗼𝘂 𝗖𝗮𝗻 𝗧𝗿𝘆 𝗧𝗵𝗶𝘀 ◀✅✅
**[[📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 PLAY NOW ▶
📺📱 🔴 ➤►𝗪𝗔𝗧𝗖𝗛👉 𝗙𝘂𝗹𝗹 𝗩𝗶𝗱𝗲𝗼 HOT ONLINE ▶
⬆
⬆
⬆
⬆
⬆
⬆

fnbvnbvn

authors: talebtar yamefumbaTF


text:
Python: Text partitioning module

Motivation and Context
Porting the text partitioning module to python
(Reopening of PR #427 )
Description

This is adding the Text partitioning module in semantic_kernel/semantic_functions/semantic_text_partitioner.py
and the function_extention in semantic_kernel/semantic_functions/function_extension.py
Compared to the C# version the files were added directly into the semantic_functions directory instead of the semantic_functions/partitioning to not have too many nested directories.

Contribution Checklist

[x] The code builds clean without any errors or warnings
[x] The PR follows SK Contribution Guidelines (https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
[x] The code follows the .NET coding conventions (https://learn.microsoft.com/dotnet/csharp/fundamentals/coding-style/coding-conventions) verified with dotnet format
[x] All unit tests pass, and I have added new tests where possible
[x] I didn't break anyone :smile:

Agreed. text_chunker make sense, there is also #404 referring to extend the chunker, good idea to align on this terminology.

@JTremb I'm ready to approve this PR once the terminology from "semantic text partitioning" -> "text chunking" is complete

poetry run pre-commit run -c .conf/.pre-commit-config.yaml -a will run flake8, isort, and black
poetry run ruff check .

should address your linting errors.

@awharrison-28 Great! I did the renaming of the terminology (files, functions) partition -> chunk.
Do you think I should also move the text_chunker in a different package than semantic_kernel.semantic_functions ?
For the linting errors , it's related to files that I haven't modified so I did not push the changes. I can also add them in this PR.

Agree that this shouldn't need to be called "semantic".
I like the phrase "text chunking". As long as you all think implementing various "Chunkers" sounds good and makes sense.
In the future, we'll want to be able to chunk based off the number of characters, the number of tokens, and by other popular Python libraries like Spacy and NLTK.
Since this will be a common operation for anyone working with data in the SK, I think this can be considered a core SK Function.

@alexchaomander Can you help make sure changes made here are also made re: dotnet\src\SemanticKernel\SemanticFunctions\Partitioning\SemanticTextPartitioner.cs in dotnet kernel?

The terminology oracle agree to use the name: Text Chunker. Let's update both codebases

authors: JTremb awharrison-28 dluc lemillermicrosoft