ci: test building against a system uchardet#65
Open
wbarnha wants to merge 1 commit into
Open
Conversation
The existing Tests workflow only builds the bundled uchardet default, so the system-uchardet path is never exercised in CI. Add a Linux job that builds uchardet from git, installs it, then builds cChardet with -Dsystem-uchardet=enabled and runs the test suite. The job also asserts (via ldd) that the built extension links the shared system libuchardet rather than silently falling back to the bundled sources, and checks that the system header exposes uchardet_get_n_candidates (the symbol the enabled/auto probe requires). Stacked on the system-uchardet feature-option change; the option it exercises does not exist on master yet. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BnTZQEXqpedyrFAgwRnbsA
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements suggestion #2 from the review of #56 (#56 (comment)): CI coverage for the
system-uchardetbuild path, which the existing Tests workflow never exercises (it only builds the bundled default).Adds
.github/workflows/test-system-uchardet.yml— a single Linux job that:files()validates the vendored sources exist at configure time even for a system build).gitlab.freedesktop.org/uchardet/uchardet) and installs it to/usr.uchardet_get_n_candidates(the symbol theenabled/autoprobe requires — the last tagged release still reports0.0.8but only the git build ships it).pip install . --config-settings=setup-args=-Dsystem-uchardet=enabled.lddthat the extension links the sharedlibuchardetrather than silently falling back to the bundled sources.Stacking
This is stacked on #64 (base =
claude/mode-pr-81-review-xe6yhe), because the-Dsystem-uchardet=enabledoption it exercises doesn't exist onmasteryet — it's introduced by #64. So the diff here is just the new workflow file. Once #64 merges, GitHub will retarget this tomasterautomatically (or it can be rebased ontomaster).Verified locally
I reproduced every step on Linux before writing the workflow: uchardet git built + installed (pkg-config reports
0.0.8, candidate API present),-Dsystem-uchardet=enabledbuilds against it,lddshowslibuchardet.so.0 => /lib/x86_64-linux-gnu/libuchardet.so.0(system lib, not bundled), and the suite passes (125 passed, 1 skipped). The workflow'spull_requesttrigger has no branch filter so it runs on this stacked PR too.🤖 Generated with Claude Code
https://claude.ai/code/session_01BnTZQEXqpedyrFAgwRnbsA
Generated by Claude Code