Parent: #129.
Scope
Apply the detachable-harness template from
docs/adr/0001-binding-ci-template.adoc to bindings/crystal/.
Detachability contract for the Crystal binding
The Crystal binding must compose its own detachable set:
bindings/crystal/ — all sources, tests, scripts,
symbol-manifest.txt, README, shard.yml, Justfile
bindings/c/include/proven.h — vendored on extraction
.github/workflows/crystal-ci.yml — workflow file, sparse-checkout
pattern matching the Chapel pilot
The root Justfile gains crystal-{check,build,test,clean} as one-line
forwarders into bindings/crystal/Justfile. Nothing under
bindings/crystal/ may reach into the proven repo root or any
sibling binding.
Replication steps (mechanical)
- Search/replace
chapel → crystal, Chapel → Crystal,
*.chpl → *.cr, Mason.toml → shard.yml, chpl --version
→ crystal --version across the Chapel template.
- Adapt the WIRED extern list to the Crystal binding's current
declarations.
- Trim to the proven#88 wired subset
(proven_path_has_traversal, proven_header_has_crlf,
proven_free_string, proven_version, proven_build_info).
- Replace the Chapel
chpl --library typecheck command with the
Crystal equivalent (crystal build --no-codegen).
- Pin the Crystal toolchain by URL + SHA-256 in the workflow's
env: block.
- Land in a single PR titled
feat(crystal-binding): stand up detachable CI + tests — binding-tier-1.
References
Parent: #129.
Scope
Apply the detachable-harness template from
docs/adr/0001-binding-ci-template.adoctobindings/crystal/.Detachability contract for the Crystal binding
The Crystal binding must compose its own detachable set:
bindings/crystal/— all sources, tests, scripts,symbol-manifest.txt, README,shard.yml,Justfilebindings/c/include/proven.h— vendored on extraction.github/workflows/crystal-ci.yml— workflow file, sparse-checkoutpattern matching the Chapel pilot
The root Justfile gains
crystal-{check,build,test,clean}as one-lineforwarders into
bindings/crystal/Justfile. Nothing underbindings/crystal/may reach into the proven repo root or anysibling binding.
Replication steps (mechanical)
chapel→crystal,Chapel→Crystal,*.chpl→*.cr,Mason.toml→shard.yml,chpl --version→
crystal --versionacross the Chapel template.declarations.
(
proven_path_has_traversal,proven_header_has_crlf,proven_free_string,proven_version,proven_build_info).chpl --librarytypecheck command with theCrystal equivalent (
crystal build --no-codegen).env:block.feat(crystal-binding): stand up detachable CI + tests — binding-tier-1.References
docs/adr/0002-chapel-binding-standup.adocdocs/adr/0001-binding-ci-template.adoc