-
-
Notifications
You must be signed in to change notification settings - Fork 103
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
feat(core): ldml repertoire test, initial ICU integration 🙀 #8441
Conversation
User Test ResultsTest specification and instructions User tests are not required |
- icu4c as an optional dependency For: #8435
c1c9f4f
to
0693e64
Compare
Trying to see how this builds. Had to run: $ sudo ln -s /usr/local/opt/icu4c/lib/pkgconfig/* /opt/X11/lib/pkgconfig/ due to meson issues, see https://bugs.freedesktop.org/show_bug.cgi?id=111126#c8 may be able to do: which seems very redundant. c'mon meson… |
core/tests/unit/ldml/meson.build
Outdated
pkgconfig = 'pkg-config' | ||
icu4c = dependency('icu-uc', required: false) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How will this work on Windows builds?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Choco? I'll see. Making it optional as a PoC.
Should be able to use icu (minus data) in a static link scenario if needed.
Also eventually this will be a Dev tool not a unit test.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this intended just for tests?
I would be happy to include icu as a dependency but we need to think about how we want to add it strategically because adding dependencies is always complicated for a cross-platform project.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yea for tests. I think it's ultimately a part of developer tools. Which will have wasm linked icu4c or icu4x available. So this is just a way to bring up and prove out.
- wip: right now passes, because it emits the repertoire text as it goes For: #8435
- wip: simple lookup for an exact key For: #8435
|
- wip: conditional for hasStrings For: #8435
I'm ok. … it might well be an ICU 73.1 integration then! |
18:46:21 1) KmpCompiler seems like something unrelated, rerunning |
I saw this on one of our agents with another build, checking the agents now. We may have to adjust the test timeout for that specific test. |
Probably. I can't think of a reason why it should not work although I have the feeling I'm overlooking something. I guess we can try and find out if it works 😄 |
so, where are we on this? PR as it is requires icu to be installed beforehand if you're on linux, otherwise builds its own. Ready to merge? |
Fine with me (once the agent got updated), as long as it is possible to build with ICU 66 on linux. |
ba-bionic-64-ta updated to meson 1.1.0. |
core/subprojects/README.md
Outdated
- Ideally we would use meson's [wrapdb](https://mesonbuild.com/Wrapdb-projects.html), and in fact the files here are sourced from that project. | ||
- However, it requires a much newer meson version to work properly: 0.55 at least. | ||
- Patches for icu (i.e. meson build files) are in [`packagefiles/icu`](./packagefiles/icu/) | ||
- The file `packagefiles/icu-minimal.zip` is generated from the files in [`packagefiles/icu`](./packagefiles/icu/) | ||
- Regenerate it with these commands: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So, given we can build with meson 1.0+ on our ba-bionic64ta agent now (which is where we are limited on meson version), we should be able to rely on system-supplied ICU (v66) for Ubuntu and thus simplify the integration here, am I right?
If so, let's go ahead and do that simplification of the ICU integration here and then this should be ready to merge!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can drop the zip file (again!) that's the simplification we can do now. We can't use upstream wrap db AND minimize size yet. But I hope to upstream changes to make the icu configurable so we can someday depend on the wrap
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a good step forward, really happy to not include the .zip!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a good step forward, really happy to not include the .zip!
You ok if I force push just to drop the last couple commits? That will remove the zip I re added.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nevermind. That's not going to work with the merges. Anyway, I did a revert and also another merge
- Revert "feat(core): icu integration steps 🙀" - This reverts commit c168253.
- version is 73.1 not 72.1 - add mention in linux build docs - add libicu-dev dependency in debian control (but not runtime) for #8495
I'm re-requesting review because I've updated the linux docs and the controlfile. Note that it adds icu to the debian requirements for build but not deploy yet, since it's not yet a requirement until in core. |
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
🎉 |
Changes in this pull request will be available for download in Keyman version 17.0.93-alpha |
For: #8435 and #8495
Note, f2b8b9b does add build files from
mesonbuild/wrapdb
, includes license file (MIT)@keymanapp-test-bot skip