Skip to content

Diff Tool should ignore positional changes in enums #10

@andrueastman

Description

@andrueastman

Related to changes in microsoftgraph/msgraph-sdk-dotnet#2826

The tool does detect the change in order of the enums where the timeCard member is inserted into the enum at position 8.

Removal of Microsoft.Graph.Models.workforceIntegrationSupportedEntities has an enum member timeOffReason with order 8
Removal of Microsoft.Graph.Models.workforceIntegrationSupportedEntities has an enum member timeOff with order 9
Removal of Microsoft.Graph.Models.workforceIntegrationSupportedEntities has an enum member timeOffRequest with order 10
Addition of Microsoft.Graph.Models.workforceIntegrationSupportedEntities has an enum member timeCard with order 8
Addition of Microsoft.Graph.Models.workforceIntegrationSupportedEntities has an enum member timeOffReason with order 9
Addition of Microsoft.Graph.Models.workforceIntegrationSupportedEntities has an enum member timeOff with order 10
Addition of Microsoft.Graph.Models.workforceIntegrationSupportedEntities has an enum member timeOffRequest with order 11

However, from metadata change at https://github.com/microsoftgraph/msgraph-metadata/pull/760/files#diff-eb3d3e370adab9ae29d645852adb1ce71b9206412f026061d55bd4b4b3776d48 the insertion isn't really breaking given that the value members was not set.

Image

We should probably investigate ignoring insertions (the positional order) of enum members in breaking change detections for graph because the members end up being serialized as strings as from the SDK perspective, the change in position is really to be determined by the API.

This would involve changing the serialization of the dom to no longer have the positional parameter as seen here https://github.com/microsoft/kiota/blob/c35b901a90fbd6e19a6790d7fea8ef1ab14a5a35/src/Kiota.Builder/Export/PublicAPIExportService.cs#L80

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions