Skip to content

fix: correct the license to PIF and ship a README with the crate - #7

Merged
spacedevin merged 1 commit into
mainfrom
fix/crate-readme
Aug 3, 2026
Merged

fix: correct the license to PIF and ship a README with the crate#7
spacedevin merged 1 commit into
mainfrom
fix/crate-readme

Conversation

@spacedevin

Copy link
Copy Markdown
Owner

Two things wrong on the published deckfile crate page.

License was MIT — should be PIF

Pay It Forward, the same license as tish. LICENSE now carries the PIF text (with this project's own copyright line) and package.json says PIF.

The crate manifest uses license-file rather than license, because PIF isn't an SPDX identifier — an SPDX field would either be rejected by crates.io or misreport the terms. That's what tish does, for the same reason.

No README at all

deckfile v1.2.1 published with an empty crate page: "deckfile v1.2.3 appears to have no README.md file". crates.io renders the page from a README inside the package and can't reach back into the repo, and build-rust.mjs never generated one.

Both LICENSE and README.md now ship — 32 files packaged, up from 30.

The README is written for a Rust consumer rather than reusing the npm one, since they need different things:

  • leads with parse() and the typed BodyRow match, not npm install and the Tish import path
  • notes that parse never fails — malformed lines land in program.errors, because a streaming host has to parse partial programs
  • says plainly that the crate is generated from src/index.tish, that Rust/JS/Tish therefore agree by construction rather than by discipline, and that patches belong upstream
  • states the scope boundary (no apply/emit/audio) and the registry-based extension points

Verification

npm test                 ALL_OK · CONFORMANCE_OK (11 cases) · tish smoke all passed
cargo test (crate)       4 passed
cargo publish --dry-run  Packaged 32 files, 42.2 KiB compressed
cargo package --list     LICENSE, README.md both present

Takes effect on the next release; 1.2.3 keeps the blank page and MIT metadata until then.

Two things wrong on the published crate page.

The license was MIT. It should be Pay It Forward, the same license as tish —
so the LICENSE text now matches tish's and package.json says PIF. The crate
manifest uses `license-file` rather than `license`, because PIF is not an SPDX
identifier and an SPDX field would either be rejected or misreport the terms;
that is what tish does for the same reason.

And deckfile v1.2.1 published with no README at all — crates.io renders the
crate page from a README inside the package and cannot reach back into the repo,
so the page was blank. The crate now carries both LICENSE and README (32 files
packaged, up from 30).

The README is written for a Rust consumer rather than reusing the npm one: it
leads with `parse()` and the typed body rows instead of `npm install` and the
Tish import path, notes that `parse` never fails because a streaming host must
be able to parse a partial program, and says plainly that the crate is generated
and patches belong upstream.
@spacedevin
spacedevin merged commit 467daf7 into main Aug 3, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant