Skip to content

v0.2.1

Choose a tag to compare

@seriouslysean seriouslysean released this 04 Sep 13:31
· 358 commits to main since this release
e4f4ec4

A one-value correction to what 0.2.0 stamped on every signal. No API change,
no behaviour change.

What was wrong

0.2.0 set the payload version sdk.version to 1.1.0. The minor position says
the payload shape grew and nothing a reader depends on went away. The opposite
happened: four run-context fields were removed and one replaced them.

Telling a reader which shape a row arrived in is the only thing that field
does, so stamping it in the position that promises no removal defeats it.

sdk.version is now 2.0.0.

Rows already sent

Signals sent by 0.2.0 carry 1.1.0 and describe the same shape as 2.0.0.
They cannot be restamped. A reader separating shapes should treat 1.1.0 and
2.0.0 as one, and treat 1.0.0 as the older shape with the four run-context
booleans.

That window is one release wide, which is the reason to correct this now rather
than after more of it accumulates.

The rule this came from

STABILITY.md said when the payload version moves and never which position it
moves in, which is how a minor bump looked defensible for a removal. It now
names the reader as who the version promises to and reads the positions off
that: a removal is major, an addition is minor, and a changed form is whichever
of the two a reader would have to react to.

Upgrading

Nothing in the API list moved, which is why this sits in the patch position.
Anyone on 0.2.0 upgrades by changing the version and rebuilding. Anyone coming
from 0.1.x should read the 0.2.0 notes first: that release removed four
PayloadKey constants and changed EnvironmentSnapshot.init.

99 tests in 12 suites.