v0.2.4 - Critical Package Distribution Fixes
v0.2.4 - Critical Package Distribution Fixes
Fixed
Python Package Distribution (CRITICAL)
- Fixed: Python package now includes the
spikard/wrapper module. v0.2.3 and earlier only contained the_spikardbinary extension, causingModuleNotFoundError: No module named 'spikard'when users triedimport spikard. - Root Cause: Maturin
includedirective was not bundling the Python wrapper package frompackages/python/spikard/. - Solution: Changed
crates/spikard-py/pyproject.tomlfrom usingincludetopython-source = "../../packages/python", which properly bundles both the Rust binary extension and the Python wrapper code. - Impact: Package now works as documented - users can
import spikardand access the high-level API (Spikard app class, route decorators, config classes). Fixes 100% of Python installs.
Node.js Package Distribution (CRITICAL)
- Fixed: Node.js platform packages now include the required
.nodenative binaries. v0.2.3 and earlier platform packages (@spikard/node-darwin-arm64, etc.) were published empty, causingCannot find module './spikard-node.darwin-arm64.node'errors on all platforms. - Root Cause: Publish workflow was using
--ignore-scriptsflag which prevented theprepublishOnlyhook from running. This hook executesnapi prepublish -t npmwhich generates platform-specific packages with binaries. - Solution: Removed
--ignore-scriptsfrom thepnpm publishcommand in.github/workflows/publish.yaml. - Impact: Package now fully functional on all platforms (darwin-arm64, darwin-x64, linux-x64-gnu, win32-x64-msvc). Fixes 100% of Node.js installs.
CI Workflow Fixes
- Fixed: Python CI now runs pytest from repository root instead of
cd packages/python, preventing import shadowing where local stub modules conflicted with installed wheel packages. - Fixed: PHP CI on Windows now works with ext-php-rs vectorcall ABI by adding
#![cfg_attr(windows, feature(abi_vectorcall))]feature gate. - Fixed: Ruby CI vendor directory separation - vendored Rust crates now go to
vendor/crates/instead ofvendor/, preventing conflict with bundler's gem cache invendor/bundle/.
Summary
v0.2.4 fixes critical packaging issues that made v0.2.3 Python and Node.js packages completely unusable:
- Python: 100% broken (missing wrapper package) → Now fully functional
- Node.js: 100% broken (missing .node binaries) → Now fully functional
- CI: 3/9 workflows failing → All workflows now passing
All fixes preserve backward API compatibility. No code changes required for users upgrading.