Versioning

Aegis is at 0.x. This page says what that means and what will not change under you.

What 0.x means#

  • The ten core names are stable: signal, computed, effect, batch, html, island, mount, resource, wireForm, swap. Their signatures and behaviour are the ones 1.0 ships with.
  • Extended names can change between minor versions (0.7 → 0.8). A change is listed in the changelog under “Changed”, with the migration in one line.
  • Deprecated names keep working through 0.x. They are marked @deprecated in aegis.d.ts with the replacement and are removed in 1.0.
  • Patch versions (0.7.1) fix behaviour and never change an API.

What never changes#

  • A versioned file. https://aegisjs.com/0.7.0/aegis.min.js is the file at the git tag v0.7.0, byte for byte, forever. The hash in your import map is the proof.
  • The unversioned https://aegisjs.com/aegis.js is the latest release and does change. Use it for experiments, not for a deployed page.

Upgrading#

  1. Read the changelog entry for the new version.
  2. Run your page with window.__AEGIS_DEV__ = true: deprecated names and changed behaviour are reported with a code and the fix.
  3. Change the version and the hash in the import map. Installation lists both for every version.

The road to 1.0#

1.0 is not a feature release. It is the point where the extended API stops moving, deprecated aliases are gone and the suite has run for a while on production pages other than the author's. Until then, the promise is narrower: pinned files never change, the core ten never change, and every change to the rest is written down.