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

Improve invariant globalization mode to be more complete #43774

Closed
2 tasks done
marek-safar opened this issue Oct 23, 2020 · 8 comments · Fixed by #55520
Closed
2 tasks done

Improve invariant globalization mode to be more complete #43774

marek-safar opened this issue Oct 23, 2020 · 8 comments · Fixed by #55520
Assignees
Labels
area-System.Globalization Cost:S Work that requires one engineer up to 1 week Priority:1 Work that is critical for the release, but we could probably ship without Team:Libraries tracking This issue is tracking the completion of other related issues.
Milestone

Comments

@marek-safar
Copy link
Contributor

marek-safar commented Oct 23, 2020

The improvements to make invariant globalization mode more complete have been suggested since this mode was introduced. This issue extracts information from various existing comments and suggestion for easier .NET6 tracking.

  • Make basic lower/upper casing of non-ASCII characters work. The experience is pretty bad today if you are non-English speaking and like to use your native alphabet. The size footprint for doing this does not seem prohibitive.
  • Throw exceptions when somebody asks for non-invariant culture-specific data to make the bugs caused by missing globalization support easy to discover. We return bogus invariant data silently today.

Related issues

@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added area-System.Globalization untriaged New issue has not been triaged by the area owner labels Oct 23, 2020
@ghost
Copy link

ghost commented Oct 23, 2020

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

@GrabYourPitchforks
Copy link
Member

Also related: #20674, which is philosophically a "how do we want OrdinalIgnoreCase to behave in an ICU world?" question.

@Wraith2
Copy link
Contributor

Wraith2 commented Oct 23, 2020

Libraries can require globalization information to function correctly, for example SqlClient. Currently the way to check if the library is running in invariant mode is CultureInfo.GetCultureInfo("en-US").EnglishName.Contains("Invariant") which could be slow if it causes a culture instantiation and isn't obvious. It would be nice if there were a cleaner way to detect the mode.

@tarekgh tarekgh added enhancement Product code improvement that does NOT require public API changes/additions and removed untriaged New issue has not been triaged by the area owner labels Oct 23, 2020
@tarekgh tarekgh added this to the 6.0.0 milestone Oct 23, 2020
@tarekgh
Copy link
Member

tarekgh commented Oct 23, 2020

Throw exceptions when somebody asks for non-invariant culture-specific data to make the bugs caused by missing globalization support easy to discover. We return bogus invariant data silently today.

I would be careful doing that. apps using libraries which they don't control and libraries can be creating non invariant cultures. Apps will not have any choice at that time but not using such libraries.

@jkotas
Copy link
Member

jkotas commented Oct 23, 2020

We can add compat quirks if we find this to be a problem.

@tarekgh
Copy link
Member

tarekgh commented Oct 24, 2020

We can add compat quirks if we find this to be a problem.

I am pretty sure we'll get a lot of noises with that and the volume of complain can be none trivial.

@danmoseley danmoseley added the Priority:1 Work that is critical for the release, but we could probably ship without label Nov 10, 2020
@danmoseley
Copy link
Member

@tarekgh could you add an estimated cost label? https://github.com/dotnet/runtime/labels?q=cost

@tarekgh tarekgh added the Cost:S Work that requires one engineer up to 1 week label Nov 10, 2020
@tarekgh
Copy link
Member

tarekgh commented Nov 10, 2020

@danmosemsft done.

@danmoseley danmoseley added the User Story A single user-facing feature. Can be grouped under an epic. label Nov 10, 2020
@marek-safar marek-safar added tracking This issue is tracking the completion of other related issues. and removed User Story A single user-facing feature. Can be grouped under an epic. enhancement Product code improvement that does NOT require public API changes/additions labels Nov 16, 2020
@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label Jul 12, 2021
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Jul 15, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Aug 14, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-System.Globalization Cost:S Work that requires one engineer up to 1 week Priority:1 Work that is critical for the release, but we could probably ship without Team:Libraries tracking This issue is tracking the completion of other related issues.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants