Skip to content

binding-tier-1: Crystal binding standup (replicate from Chapel pilot) #130

@hyperpolymath

Description

@hyperpolymath

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)

  1. Search/replace chapelcrystal, ChapelCrystal,
    *.chpl*.cr, Mason.tomlshard.yml, chpl --version
    crystal --version across the Chapel template.
  2. Adapt the WIRED extern list to the Crystal binding's current
    declarations.
  3. Trim to the proven#88 wired subset
    (proven_path_has_traversal, proven_header_has_crlf,
    proven_free_string, proven_version, proven_build_info).
  4. Replace the Chapel chpl --library typecheck command with the
    Crystal equivalent (crystal build --no-codegen).
  5. Pin the Crystal toolchain by URL + SHA-256 in the workflow's
    env: block.
  6. Land in a single PR titled feat(crystal-binding): stand up detachable CI + tests — binding-tier-1.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions