@zack/native-release-check

A small native helper demonstrating target-specific package publication.

Install
agentpm install @zack/native-release-check@0.1.0
Load
import { load } from '@agentpm/sdk';
const t = await load('@zack/native-release-check@0.1.0');
Installs
4
All time
Stars
0
Unstarred
Latest stable
1d ago
v0.1.0

Native release check

This small publication fixture compiles a C helper on each native runner. Its Python entrypoint invokes that helper and returns the input integer plus one. The compiled helper makes each payload target-specific; no target is relabeled.

For a local build, using a CLI with agentpm package support:

python build.py
agentpm lint --strict
agentpm package --machine

The publish-native-example.yml workflow builds Apple Silicon macOS, Intel macOS, Linux x86-64 and Windows x64 from one tag, then publishes one complete signed release. See publishing setup before creating a release tag. This fixture is independent of the two maintained package examples.

build.py uses cc on macOS/Linux and locates the x64 MSVC Build Tools with Visual Studio's vswhere.exe on Windows; see the MSVC command-line setup guide. The Windows build initializes vcvars64.bat and links the C runtime statically (/MT); the consumer does not need a compiler or a separate Visual C++ runtime installation for this helper. Use Python 3.11+ to build locally; GitHub's Windows runner supplies MSVC.

Every runner packages the same manifest, whose files list includes bin/. Only its compiled bin/native-helper (Unix) or bin/native-helper.exe (Windows) is placed there; object files remain in temporary storage. The Python entrypoint selects the platform's filename. All four build outputs are required before publication, and each platform then performs a strict install and executes its own selected artifact in a clean consumer. Linux arm64 is not included.