unicode-data
unicode-data copied to clipboard
Split into `unicode-data-core` and `unicode-data`
Following discussion in PR #75:
To avoid making too many packages we can possibly have just two packages, we can call the lightweight package as unicode-data-core and bundle everything including unicode-data-core in the all-inclusive unicode-data package.
Currently there are 4 packages depending on unicode-data.
- We should define criteria where to include APIs. As of now, names & scripts are not considered “core”. What about blocks?
- This will require a major version bump.
- What about the existing package
unicode-names? If we do not createunicode-data-blocks-scripts, maybe we can deprecate it in favor of the new batteries includedunicode-data.
I would propose the following plan:
- Merge #75.
- Publish
unicode-data-0.3.1with all changes so far. - Update to Unicode 15.0.
- Publish
unicode-data-0.4.0and names. - Rename
unicode-datatounicode-data-core. - Re-create
unicode-data, that re-export allunicode-data-*packages. - Publish
unicode-data-core-1.0,unicode-data-names-1.0,unicode-data-scripts-1.0,unicode-data-security-0.1andunicode-data-1.0.
@harendra-kumar @adithyaov @Bodigrim
Sounds good to me.
When we do the split, I propose the following new version scheme: U.B.M, where:
Uis the supported Unicode major version; i.e. 15 for Unicode 15.0.0.Bis used to mark breaking changes: minor Unicode update or any change requiring a version bump according to PVP. It starts at 0 with every new major Unicode version.Mis used for non-breaking changes, such as additions to the API (see PVP).- All the PVP rules apply.
PROS:
- It is easier to identify what Unicode version is supported.
- Unicode version scheme is very stable. Minor updates are uncommon.
- Promote the packages by marking them as mature (
0.prefix usually means beta).
CONS:
- Increasing the major version from 0 usually indicates the software is very stable and production-ready; not all
unicode-data-*packages reach this stage yet. Perhaps this should apply only to packages we judge production-ready, thus keeping the usual0.X.Yscheme for beta packages. I would say at leastunicode-data,unicode-data-coreandunicode-data-namesare candidates for a version15.0.0. - It makes our version scheme depend on a third party’s one. But it is very stable and we already bump version for Unicode updates.
- It does not reflect the exact Unicode version. But the minor updates of Unicode are uncommon.
- Too big, looks like a browser version: I do not mind versions greater than 10 and we can expect at most one major version bump a year.
- Some packages may see no change with a new Unicode version. This is unlikely as a new Unicode version usually includes new characters, which will modify the bitmaps. It may happen if the characters have default values. This is not the case for Unicode 15.0.0.
Change in the plan:
If accepted: skip version 1.0 and publish version 15.0.0 instead.
Your pros and cons seem pretty thorough. The cons do not look significant. We can go with this scheme. I am wondering if there is anything to learn from the ICU versioning scheme here: https://icu.unicode.org/processes .
We should probably send an email to @Bodigrim for his opinion, in case we are missing something.
Sounds good to me.
(Sorry, I have extremely limited bandwidth at the moment and this is unlikely to improve soon, so feel free to act without waiting for me)