From 30ff6db12e3d73541cb2ea0c53eb05645470f3f4 Mon Sep 17 00:00:00 2001 From: Ryan Carniato Date: Sat, 16 Nov 2019 23:00:47 -0800 Subject: [PATCH] prep for release --- CHANGELOG.md | 10 +++++++++- package-lock.json | 32 ++++++++++++++++---------------- package.json | 10 +++++----- 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 006cdc16c..cfdd767a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,17 @@ # Changelog +## 0.14.0 - 2019-11-16 +v0.14.0 brings changes to the render runtime and `setState` API + +* Adds diffing to batched computations to improve update performance +* Supports support for mutable(TypeScript safe) `setState` API inspired by Immer. Function setters in Solid now pass a mutable version of state. Modifying will schedule updates. This form must not return a value. It can still be used immutably simply by returning the new value. +* Changes how `force` and `reconcile` helpers work. They can now be used on nested paths. +* Removes support for multi-path `setState`. + ## 0.13.0 - 2019-10-27 v0.13.0 contains large changes to the reactive system and compiler. -The main update is to simplify reactivity by removing computation recycling. While this was a useful feature to avoid unnecessary computation nodes, Solid now uses batching as a different approach to get similar results. Most templating libraries can offer breakneck update speeds without fine grained updates. The real cost of these top down approaches is the need to redo structural reconcilliation. The current approach is that different computations will be created for each: +The main update is to simplify reactivity by removing computation recycling. While this was a useful feature to avoid unnecessary computation nodes, Solid now uses batching as a different approach to get similar results. Most templating libraries can offer breakneck update speeds without fine grained updates. The real cost of these top down approaches is the need to redo structural reconciliation. The current approach is that different computations will be created for each: * Dynamic insert expression (any expression between tags) * Spread operator * JSX template entry point(Top level tag, Fragment, or Component Children) diff --git a/package-lock.json b/package-lock.json index 330642426..98e5d7cd5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "solid-js", - "version": "0.13.2", + "version": "0.14.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1389,9 +1389,9 @@ } }, "babel-plugin-jsx-dom-expressions": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/babel-plugin-jsx-dom-expressions/-/babel-plugin-jsx-dom-expressions-0.14.5.tgz", - "integrity": "sha512-grcoshUfIJ15TyHLXsyesWUbWMH5SZvB0L474mWlLKU9tHSGvQXjy3P6YB5dj8bz6sPWzm6tql3Ux9frsy2ixQ==", + "version": "0.14.6", + "resolved": "https://registry.npmjs.org/babel-plugin-jsx-dom-expressions/-/babel-plugin-jsx-dom-expressions-0.14.6.tgz", + "integrity": "sha512-yzfGvGz6rr43R2H5Mv3MI7zUPP4pIr3uCFG1fhPCAaF40HLARCf1byYPNzpeuVy9zw5dbOtSOaUjzUNUDvrYYw==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.7.0", @@ -1942,9 +1942,9 @@ "dev": true }, "dom-expressions": { - "version": "0.14.3", - "resolved": "https://registry.npmjs.org/dom-expressions/-/dom-expressions-0.14.3.tgz", - "integrity": "sha512-Li/hR4cjRXoLdMKZT177JYr0YOXskGnN71uWADako3QFvYpcZkBphhWnd8KaXLXOBpwb1HQU/jpoT4xtyn2O8Q==", + "version": "0.14.4", + "resolved": "https://registry.npmjs.org/dom-expressions/-/dom-expressions-0.14.4.tgz", + "integrity": "sha512-AIFcN64N9+PpBmtBynuhcP4KpstoFZIESD3m3HYk1X/vH5u+4kmSHUMBIsUN3u7QLAX0szdbr/yaO6Nwmwt8AQ==", "dev": true, "requires": { "ejs": "^2.7.1" @@ -3001,9 +3001,9 @@ "dev": true }, "handlebars": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.1.tgz", - "integrity": "sha512-C29UoFzHe9yM61lOsIlCE5/mQVGrnIOrOq7maQl76L7tYPCgC1og0Ajt6uWnX4ZTxBPnjw+CUvawphwCfJgUnA==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.2.tgz", + "integrity": "sha512-29Zxv/cynYB7mkT1rVWQnV7mGX6v7H/miQ6dbEpYTKq5eJBN7PsRB+ViYJlcT6JINTSu4dVB9kOqEun78h6Exg==", "dev": true, "requires": { "neo-async": "^2.6.0", @@ -4976,9 +4976,9 @@ } }, "rollup": { - "version": "1.26.3", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.26.3.tgz", - "integrity": "sha512-8MhY/M8gnv3Q/pQQSWYWzbeJ5J1C5anCNY5BK1kV8Yzw9RFS0FF4lbLt+uyPO3wLKWXSXrhAL5pWL85TZAh+Sw==", + "version": "1.27.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.27.0.tgz", + "integrity": "sha512-yaMna4MJ8LLEHhHl1ilgHakylf0LKeQctDxhngZLQ+W57GnXa5vtH7XKaK8zlAhNEhlWiH5YFVFt+QCDPUmNkw==", "dev": true, "requires": { "@types/estree": "*", @@ -5653,9 +5653,9 @@ "dev": true }, "uglify-js": { - "version": "3.6.8", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.8.tgz", - "integrity": "sha512-XhHJ3S3ZyMwP8kY1Gkugqx3CJh2C3O0y8NPiSxtm1tyD/pktLAkFZsFGpuNfTZddKDQ/bbDBLAd2YyA1pbi8HQ==", + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.9.tgz", + "integrity": "sha512-pcnnhaoG6RtrvHJ1dFncAe8Od6Nuy30oaJ82ts6//sGSXOP5UjBMEthiProjXmMNHOfd93sqlkztifFMcb+4yw==", "dev": true, "optional": true, "requires": { diff --git a/package.json b/package.json index f51487713..3a3b67d8c 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "solid-js", "description": "A declarative JavaScript library for building user interfaces.", - "version": "0.13.2", + "version": "0.14.0", "author": "Ryan Carniato", "license": "MIT", "repository": { @@ -28,9 +28,9 @@ "@babel/preset-typescript": "^7.7.2", "@types/jest": "^24.0.23", "babel-jest": "^24.9.0", - "babel-plugin-jsx-dom-expressions": "~0.14.5", - "coveralls": "^3.0.6", - "dom-expressions": "0.14.3", + "babel-plugin-jsx-dom-expressions": "~0.14.6", + "coveralls": "^3.0.7", + "dom-expressions": "0.14.4", "hyper-dom-expressions": "~0.14.0", "jest": "~24.9.0", "jest-ts-webcompat-resolver": "^1.0.0", @@ -38,7 +38,7 @@ "ncp": "2.0.0", "npm-run-all": "^4.1.5", "rimraf": "^2.6.3", - "rollup": "^1.26.3", + "rollup": "^1.27.0", "rollup-plugin-babel": "^4.3.3", "rollup-plugin-node-resolve": "^5.2.0", "typescript": "^3.7.2"