Release Engineering

Aryanto
August 22, 2026
1 min read

Release invariant

Keep the Python package version, Git tag, generated wheel metadata, and GitHub Release tag synchronized.

Native artifact rule

For Ary2Tower, the wheel must contain the compiled CLtowers modules corresponding to the target CPython ABI. The release process should compile them as part of the matrix, not assume that a source checkout’s local .so/.pyd files are portable.

  1. Update package version and release metadata.
  2. Run the Ary2Tower Cython build in the target CI environment.
  3. Build source distribution and wheels.
  4. Inspect wheel contents for CLtowers extensions.
  5. Install each wheel into an isolated environment.
  6. Import cooprecsys and inspect backend_info().
  7. Run model smoke tests, especially exact-N Ary2Tower inference.
  8. Create/update the GitHub Release.
  9. Publish the already-validated artifacts.

Repository source vs installed package

The source path may be src/cooprecsys/...; the installed wheel is imported as:

import cooprecsys

Never use src.models... as the consumer-facing import path in examples or tests intended to run against an installed wheel.

Last updated on August 22, 2026

Was this article helpful?

Your response is saved on this device.