Releases: cashapp/zipline
0.9.17
We've changed this project to focus exclusively on executing Kotlin/JS libraries.
We plan to drop support for executing arbitrary JavaScript code. If you've been using either
QuickJS Java (this project's name until September 2021) or Duktape Android (this project's name
until June 2021), those projects remain as git branches but will not receive further updates.
The project's new Maven coordinates are app.cash.zipline:zipline
.
- Upgrade: [Kotlin 1.8.10][kotlin_1_8_10].
- Upgrade: [Kotlin Serialization 1.5.0][kotlin_serialization_1_5_0].
- Fix: Support function overloads in
ZiplineService
interfaces. - Fix: Workaround a crash in Kotlin/JS incremental compilation. We were using a constant string in
ajs(...)
literal.
0.9.16
We've changed this project to focus exclusively on executing Kotlin/JS libraries.
We plan to drop support for executing arbitrary JavaScript code. If you've been using either
QuickJS Java (this project's name until September 2021) or Duktape Android (this project's name
until June 2021), those projects remain as git branches but will not receive further updates.
The project's new Maven coordinates are app.cash.zipline:zipline
.
- New
withDevelopmentServerPush()
subscribes to the local development server's websocket to
trigger hot reloads. This is lower-latency and more efficient than polling. - Upgrade: [Kotlin 1.8.0][kotlin_1_8_0].
0.9.15
We've changed this project to focus exclusively on executing Kotlin/JS libraries.
We plan to drop support for executing arbitrary JavaScript code. If you've been using either
QuickJS Java (this project's name until September 2021) or Duktape Android (this project's name
until June 2021), those projects remain as git branches but will not receive further updates.
The project's new Maven coordinates are app.cash.zipline:zipline
.
- Fix: Don't crash if canceled with a 0-delay job enqueued. We had a bug where calling
Zipline.close()
could race with an enqueued job. - Fix: Don't crash in the JS CoroutineEventLoop. This replaces an
IllegalStateException
with a
CancellationException
when making a suspending call after the Zipline is closed. - Fix: Do not set
-Xir-per-module
. This is no longer necessary, and may have prevented
whole-program module generation. - New: Support Webpack builds. In addition to modular builds that emit many
.zipline
files per
program, webpack builds emit a single minified.zipline
file. (In both cases a single manifest
file is used.) - New: We've added event listener events for the loader's initializer and main function.
0.9.14
We've changed this project to focus exclusively on executing Kotlin/JS libraries.
We plan to drop support for executing arbitrary JavaScript code. If you've been using either
QuickJS Java (this project's name until September 2021) or Duktape Android (this project's name
until June 2021), those projects remain as git branches but will not receive further updates.
The project's new Maven coordinates are app.cash.zipline:zipline
.
- Fix: Don’t force
suspend
functions to suspend. We've changed our calling convention so
suspendable functions are executed inline and on the same call stack until they suspend. If such
functions return without suspending, the async dispatch is skipped. - Fix: Provide more information when calling a closed service.
- Fix: Clean up file names in stack traces.
- New: Add a
ZiplineManifest
toLoadResult.Success
.
0.9.13
We've changed this project to focus exclusively on executing Kotlin/JS libraries.
We plan to drop support for executing arbitrary JavaScript code. If you've been using either
QuickJS Java (this project's name until September 2021) or Duktape Android (this project's name
until June 2021), those projects remain as git branches but will not receive further updates.
The project's new Maven coordinates are app.cash.zipline:zipline
.
- New:
ZiplineScope
is a new mechanism to close pass-by-reference services and flows. Pass a
ZiplineScope
toZipline.take()
or implementZiplineScoped
in aZiplineService
to declare
a scope, then callZiplineScope.close()
to close all received services. Note that Flows
that were passed-by-reference previously needed to be collected exactly once; with this change
Flows may be collected any number of times. - New: Configure the development HTTP server's local port in Gradle:
zipline { ... httpServerPort.set(22364) }
- New: Include the service name in
ZiplineApiMismatchException
. - Fix: Prevent
.zipline
files from being stored in the HTTP cache. We've added
'Cache-Control: no-store' request headers to downloads to prevent caching that's redundant
with ZiplineLoader's cache. - Fix: Make
ZiplineService.close()
idempotent for outbound services.
0.9.12
We've changed this project to focus exclusively on executing Kotlin/JS libraries.
We plan to drop support for executing arbitrary JavaScript code. If you've been using either
QuickJS Java (this project's name until September 2021) or Duktape Android (this project's name
until June 2021), those projects remain as git branches but will not receive further updates.
The project's new Maven coordinates are app.cash.zipline:zipline
.
- New: Add
ZiplineFunction.isSuspending
. - New: Add events for
ziplineCreate()
,moduleLoadStart()
, andmoduleLoadEnd()
.
0.9.11
We've changed this project to focus exclusively on executing Kotlin/JS libraries.
We plan to drop support for executing arbitrary JavaScript code. If you've been using either
QuickJS Java (this project's name until September 2021) or Duktape Android (this project's name
until June 2021), those projects remain as git branches but will not receive further updates.
The project's new Maven coordinates are app.cash.zipline:zipline
.
- New: Publish an event when Zipline is closed.
- Fix: Avoid a linear search through endpoint names.
0.9.10
We've changed this project to focus exclusively on executing Kotlin/JS libraries.
We plan to drop support for executing arbitrary JavaScript code. If you've been using either
QuickJS Java (this project's name until September 2021) or Duktape Android (this project's name
until June 2021), those projects remain as git branches but will not receive further updates.
The project's new Maven coordinates are app.cash.zipline:zipline
.
- New: Add support for
var
andval
declarations in service interfaces. - Fix: Update Gradle task to serve zipline files for compatibility with Gradle 7.6.
0.9.9
We've changed this project to focus exclusively on executing Kotlin/JS libraries.
We plan to drop support for executing arbitrary JavaScript code. If you've been using either
QuickJS Java (this project's name until September 2021) or Duktape Android (this project's name
until June 2021), those projects remain as git branches but will not receive further updates.
The project's new Maven coordinates are app.cash.zipline:zipline
.
- Changed: Roll back Kotlin 1.7.20 to ensure downstream users can still use Compose easily. The plugin remains compatible with 1.7.21.
0.9.8
We've changed this project to focus exclusively on executing Kotlin/JS libraries.
We plan to drop support for executing arbitrary JavaScript code. If you've been using either
QuickJS Java (this project's name until September 2021) or Duktape Android (this project's name
until June 2021), those projects remain as git branches but will not receive further updates.
The project's new Maven coordinates are app.cash.zipline:zipline
.
- New: Support Kotlin 1.7.21.