-
Notifications
You must be signed in to change notification settings - Fork 176
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
Split icu_locale into two crates #3931
Comments
We need more discussion time for this issue. There's not time for 1.3 to have that discussion. It's not a bad enough problem to block 1.3. So this should block 2.0. |
Discuss with: |
Decision from 2023-11-09:
See full notes in the 2023-Q3 Summit notes doc. |
The consensus from 2023-11-09 was to use the name I remember that I did not really like this name from the start because it uses "locale" instead of "locid" as the rest of the crates use. I also don't really like making people write So I would like to make a new proposal for the names of these crates:
Note that we already have The contents of the crates will be as discussed on 2023-11-09. I am not proposing any changes except for the names of the crates. The consensus there was:
OK? Wants approval from: |
We explicitly picked one of the names to be |
My agreement to the previous consensus was based on the understanding that New proposal:
Wants approval from: |
I'd rather use a shiny new name for the higher-level crate, but won't die on this hill. |
I would love to hear a suggestion for a better name for the higher-level crate. Here are the only ones I've seen:
|
A whole new can of worms would be suggesting to rename |
It's named I could live with |
I don't think ICU4C file names should have any bearing on our naming. Note that the library inside the |
I don't think this is a big problem. Most users will use the module through the meta crate. For the ones that don't, |
Another suggestion: Most users of a locale type crate will expect there to be canonicalization, minimization, and other locale information. There's a very small use case (basically
|
Hmm. What do you think about |
So the crates could be:
Dependency matrix:
Does that look about right? |
I guess |
Proposed conclusion: LGTM: @robertbastian @Manishearth @sffc @echeran Possible names:
Voting:
Note: 4 > 5 >> everything else Decision: if possible we do |
Discussion on locid_transform/locid_fallback
voting:
No decision: General points of contention:
|
We got (crates.io rules prevent renaming underscores to dashes, however crates.io rules sometimes allow empty squatted crates to be taken over, and
As a result, the decision on this is that we do option 4: |
options are:
(canonicalizer+ = canonicalizer, directionality, "other things that don't need much data") Manish draws some venn diagrams to help focus the discussion. Discussion: The actual things people seem to care about are these:
There was also discussion on instead a model where This leads us to:
If we end up with anything "needed by compiled data that should not be reexported from icu_locale", then we should make a new crate or something. This is a bridge we cross when we need to, we're not yet sure if there's anything that will belong here. Agreed: @Manishearth @robertbastian @sffc @echeran We bikeshed |
I like locale_ops, locale_data_utils, locale_support, and locale_mantle |
Discusion with Zibi present 3 crates:
Discussion:
Proposals for
Discussion:
Open for voting |
The first round of voting didn't reach a clear consensus. I'll send out another ballot with these options: icu_locale_fallback |
I think we should put display names in a crate separate from the others, because it's unlike the other data: It's for UI and large-ish. |
ICU4X WG discussion from 2024-04-18:
Decision on how to move forward: convene a small group to finalize decision on the controversial topics and get alignment. This small group discussion will produce the final recommendation of the WG. Locale crate splitting: Note: The names of the crates resulting from the above discussion will be brought back to the main group. |
2024-04-23 Special MeetingFour categories of functionality:
OptionsOption 1One-stop shop:
Requires child crates:
Note: this creates multiple ways to include the same types:
Option 2+Different crates for different functionality
Included in metacrate as:
Notes
Discussion on
Discussion on old crates:
Discussion on
Proposal: Introduce 3 crates:
LGTM: @echeran @robertbastian @sffc @zbraniecki @Manishearth |
This can be done ahead of time by creating crates and re-exports. |
After starting this I don't think it's worth doing for 1.5, verifying that everything stays semver compatible and introducing extra crates is a lot more work than just the few renames and moves that this needs. |
Does the conclusion from #5120 apply to splitting out fallback as well? |
|
Yes, but it's currently not at this point, because nobody is asking for it. Hence this issue can be closed. |
Conclusion:
LGTM: @sffc @robertbastian @Manishearth |
There is too much going on in icu_locid_transform for it to be a core crate. It should only contain the things essential for fallback.
The text was updated successfully, but these errors were encountered: