CHECK AND PUBLISH

Run the final checks and publish a release

Tests and compilation run on your computer using the commands in polyform.toml. The Polyform website receives the finished implementation list and release information, not a build job.

1. List the accepted implementations

Your manifest_command prints a small JSON list like this:

{
  "application": "zip-safe",
  "version": "0.1.0",
  "spec_functions": [
    {
      "name": "decode_filename",
      "implementations": [
        { "id": "decode_filename.strict_utf8", "name": "Strict UTF-8" },
        { "id": "decode_filename.table_driven", "name": "Table driven" }
      ]
    }
  ]
}

The generation agents should register each accepted implementation as they add it. Your script reads that registry and prints the list so the published release matches the program.

2. Run checks and build

polyform check
cargo build --release

polyform check runs every shared test and build command, then records the exact specification and source files that passed. If those files change afterward, Polyform makes you check again before publishing.

3. Create a release signing key

polyform keygen

This writes .polyform/signing-key.json. Back it up privately and do not commit it. The signature lets users verify that the downloaded program came from this project.

4. Create a CLI token

Open your dashboard, choose Create CLI token, and copy it. The token is shown once and authorizes publishing to your project.

5. Put the program online and publish

export POLYFORM_TOKEN="pf_…"
polyform publish \
  --project you/zip-safe \
  --server https://omalled.com/polyform \
  --artifact-url https://github.com/you/zip-safe/releases/download/v0.1.0/zip-safe

Upload the finished program to a public GitHub Release or another HTTPS download location. Polyform publishes its URL, checksum, signature, specification, and implementation list on your project page.

Mac downloads may need an Apple signature too The Polyform signature proves which project published the file. Apple signing and notarization let macOS verify the developer. A Mac program may need both.