This repository has been archived by the owner on Sep 21, 2024. It is now read-only.
Difference from v2.0.0.0 to v2.0.0.1
- Update NuGet dependency Azure.Storage.Blob - 12.4.4 -> 12.13
- Update NuGet dependency NewtonSoft.Json - 12.0.2 -> 13.0.1
- Minor changes to Tests and JS documentation
Info from v2.0.0.0 release
Node.js Support (in TypeScript)
- This release includes a language binding for Node.js. This enables developing Ambrosia apps for Node.js using TypeScript. To learn more about this new language binding, please start here.
Adding support for a language other than C# has been a longstanding project goal because it helps demonstrates the universality of Ambrosia’s “global process abstraction model”. - It is strongly recommended to always use the ambrosia-node npm package (for example, ambrosia-node-2.0.1.tgz) with the Ambrosia binaries (for example, Ambrosia-win-x64.zip) from the same release (v2.0.0.0 in this example).
- While we have run extensive testing (using Node.js 14.17.5), because this is the first release of the Node.js language binding it should be considered to be beta quality.
IC Hash Bug Fix (FORWARD COMPATABILITY BREAK)
- In order to make a necessary improvement to the log record hash algorithm, logs generated by this and subsequent releases will NOT BE READABLE by older immortal coordinators. Backward compatibility is provided, however, and this release will recover and time-travel logs generated by all previous releases. This improvement fixes a bug where, in rare cases, broken log records would incorrectly be labeled as valid, and recovery would fail with an exception. Note that this could only happen when the immortal coordinator was run in Windows, storing logs in files, with administrator privileges, for maximum performance. This bug will not surface in previous versions if the immortal coordinator is run in a standard user process, or is run in another operating system, or is storing logs in Azure blobs.
- We are bumping the major revision number with this release to call attention to the lack of forward compatibility for previous versions brought about by this bug fix.