Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release/5.0] Fix ListSeparator with ICU #44823

Merged
merged 3 commits into from
Nov 19, 2020

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Nov 17, 2020

Fixes #43795

Backport of #44732 to release/5.0

/cc @tarekgh

Customer Impact

.NET has the property TextInfo.ListSeparator which we discovered the users take dependencies on this property to parse Excel CSV files. In .NET Core 1.0 when started to support Linux (by using ICU library), ICU doesn't provide data for the list separator. The implementers decided to use the Decimal Separator for that. When we switched to use ICU on Windows in .NET 5.0, some users started to see the difference of the data between NLS and what we return when using ICU.
The fallback to Decimal Separator was wrong in the first place and also we need to maintain the same data provided by NLS (as ICU doesn't provide similar data anyway). That will return back the old behavior and return more reasonable values for the separator.

This change will apply to both Windows and Unix: it will change the behavior we have had in Unix for some time to match the NLS behavior.

I have followed up with Office team too and they verified the data we provide (which we picked from NLS) is compatible with the data they use in Excel. They also carry this same data on Mac.

Testing

I have manually confirmed the data returned from all cultures when using NLS is exact as when we use ICU now. Also, I have added a new tests for all major cultures to ensure the behavior moving forward.

Risk

I believe the risk is small as we are just adding some more hardcoded data to a table we already maintain. Also, I didn't even increase the data size as I was able to squash it inside some other fields.

@ghost
Copy link

ghost commented Nov 17, 2020

Tagging subscribers to this area: @tarekgh, @safern, @krwq
See info in area-owners.md if you want to be subscribed.

Issue Details
Description:

Backport of #44732 to release/5.0

/cc @tarekgh

Customer Impact

Testing

Risk

Author: github-actions[bot]
Assignees: -
Labels:

area-System.Globalization

Milestone: -

@tarekgh tarekgh added the Servicing-consider Issue for next servicing release review label Nov 17, 2020
@danmoseley
Copy link
Member

Thanks. Did you hear back from the Office team?
I added a note about it changing Unix.

@tarekgh
Copy link
Member

tarekgh commented Nov 17, 2020

Did you hear back from the Office team?

Yes, I confirmed Office is calling NLS on Windows and on Mac they carry the data same as we are doing in this PR.

I added a note about it changing Unix.

Thanks. sorry I missed it in the first place :-)

@tarekgh
Copy link
Member

tarekgh commented Nov 17, 2020

The failures in this PR is tracked by:
#41954
#44830
#44831

@github-actions github-actions bot force-pushed the backport/pr-44732-to-release/5.0 branch from 1062c91 to ec39b92 Compare November 18, 2020 20:19
@ericstj ericstj added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Nov 19, 2020
@tarekgh tarekgh merged commit 9ff196f into release/5.0 Nov 19, 2020
@tarekgh tarekgh deleted the backport/pr-44732-to-release/5.0 branch November 19, 2020 02:01
@ghost ghost locked as resolved and limited conversation to collaborators Dec 19, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants