Translate the Conan Center utf8proc recipe into an LLAR Formula in this repository.
Source material
Goal
Add JuliaStrings/utf8proc to llarhub. Preserve the useful package semantics expressed by the Conan recipe, but produce an idiomatic LLAR Formula rather than a line-by-line rewrite of conanfile.py.
Read and follow .agents/skills/write-formula/SKILL.md and both required references before editing.
Translation process
- Read
config.yml, conandata.yml, conanfile.py, and test_package to identify the source tags, build behavior, options, installed interface, and consumer verification.
- Resolve the exact upstream tag for Conan version
2.9.0 from conandata.yml, preserving its spelling. Inspect that exact upstream revision before choosing any dependency, flag, output, metadata, or test.
- Compare the other versions served by the same Conan recipe folder and choose the earliest verified LLAR
fromVer boundary. One Formula may serve a version range only when the upstream build contract remains compatible. Add another threshold instead of claiming an unverified range.
- The automated preselection found no Conan
requirements, tool_requires, or test_requires calls. Verify direct dependencies from the upstream source anyway. Never invent dependencies. When dependency versions can change within the Formula range, prefer source-synchronized onRequire; use versions.json only as an exact-version conservative fallback.
- Translate only settings and options that materially affect dependencies, commands, installed output, metadata, tests, or platform support. Environment dimensions belong in
target.require; package-owned choices belong in target.options. defaults supplies option defaults, and filter rejects only combinations proved unsupported.
- Inspect every Conan patch or exported source when present. Carry over only behavior required by the selected upstream revision. Do not copy Conan layout helpers, generated toolchains, packaging cleanup, compatibility branches, or defensive flags without upstream evidence.
- Implement the build with the current LLAR CMake helper.
onBuild must build the selected upstream source and install the complete public result into ctx.outputDir. Call configure, build, and install directly because they already panic on failure.
- Derive
ctx.setMetadata from the actual installed consumer interface. Prefer valid installed package metadata when available; do not guess flags from the Conan package_info block.
- Add
onTest using the Conan test_package as the consumer behavior reference. Compile and run or load a small consumer against the installed result. Keep its build tree independent of the onBuild scratch tree so the test also works on a cache hit.
- Keep the change limited to the module files for
JuliaStrings/utf8proc. Do not add a generic Conan importer and do not modify the Formula skill.
Validation
Run the repository-required checks and test the exact upstream tag corresponding to Conan 2.9.0:
llar test -v ./JuliaStrings/utf8proc@<exact-upstream-tag>
Also test representative versions across every claimed Formula range, the default selection, and each retained output-changing option with explicit host --os and --arch values. Re-run one selection to verify cache-hit onTest behavior.
Translate the Conan Center
utf8procrecipe into an LLAR Formula in this repository.Source material
ffe30df101afd4dc95aac2f14b25bf345e64d7be2.9.0nonoGoal
Add
JuliaStrings/utf8procto llarhub. Preserve the useful package semantics expressed by the Conan recipe, but produce an idiomatic LLAR Formula rather than a line-by-line rewrite ofconanfile.py.Read and follow
.agents/skills/write-formula/SKILL.mdand both required references before editing.Translation process
config.yml,conandata.yml,conanfile.py, andtest_packageto identify the source tags, build behavior, options, installed interface, and consumer verification.2.9.0fromconandata.yml, preserving its spelling. Inspect that exact upstream revision before choosing any dependency, flag, output, metadata, or test.fromVerboundary. One Formula may serve a version range only when the upstream build contract remains compatible. Add another threshold instead of claiming an unverified range.requirements,tool_requires, ortest_requirescalls. Verify direct dependencies from the upstream source anyway. Never invent dependencies. When dependency versions can change within the Formula range, prefer source-synchronizedonRequire; useversions.jsononly as an exact-version conservative fallback.target.require; package-owned choices belong intarget.options.defaultssupplies option defaults, andfilterrejects only combinations proved unsupported.onBuildmust build the selected upstream source and install the complete public result intoctx.outputDir. Callconfigure,build, andinstalldirectly because they already panic on failure.ctx.setMetadatafrom the actual installed consumer interface. Prefer valid installed package metadata when available; do not guess flags from the Conanpackage_infoblock.onTestusing the Conantest_packageas the consumer behavior reference. Compile and run or load a small consumer against the installed result. Keep its build tree independent of theonBuildscratch tree so the test also works on a cache hit.JuliaStrings/utf8proc. Do not add a generic Conan importer and do not modify the Formula skill.Validation
Run the repository-required checks and test the exact upstream tag corresponding to Conan
2.9.0:Also test representative versions across every claimed Formula range, the default selection, and each retained output-changing option with explicit host
--osand--archvalues. Re-run one selection to verify cache-hitonTestbehavior.