Release notes
2.6.9 February 14, 2019
riot:
-
Fix: mixins
Object.__proto__
inheritance riot/2661
3.13.2 November 25, 2018
riot:
- Fix: dynamic import in riot tags riot/2635
3.13.1 November 1, 2018
riot:
-
Fix:
skipAnonymousTags
setting doesn’t effect mount event in global mixin riot/2635
3.13.0 October 20, 2018
riot:
-
Add: The
keepValueAttributes
setting to enable falsyvalue
attributes removal riot/2629
3.12.0 September 2, 2018
riot:
- Add: Components options creation via functions riot/2613
3.11.2 August 29, 2018
riot:
- Fix: Parentnode check on virtual replace riot/2615
3.11.1 July 14, 2018
riot:
-
Fix: Upload the new
bin
folder to npm
3.11.0 July 14, 2018
riot:
3.10.3 June 20, 2018
riot:
- Fix: Loops - index value does not change in “if” statement during iteration riot/2603
3.10.2 June 16, 2018
riot:
- Fix: If you reuse the declared object in the tag, an error will occur riot/2600
-
Update: Avoid the use of alpha dependencies, freeze
simple-dom@1.3.0
-
Fix:
npm audit
dev dependencies vulnerabilities
3.10.1 May 20, 2018
riot:
- Fix: Any element attributes that are functions are added as event handlers riot/2592
- Fix: Full unnecessary rerender with lost focus after state update riot/2585
3.10.0 May 10, 2018
riot:
- Update: Remove the React from the project description
- Fix: Observable passed as mount ‘opt’ parameter looses on/off/etc methods riot/2581
3.9.5 May 5, 2018
riot:
- Improve: 100% Coverage!
- Fix: Components in each loop have their properties overwritten riot/2580
- Fix: Elements are unintentionally left with nested conditional tags riot/2575
3.9.4 April 19, 2018
riot:
- Fix: Styles are left after unregister() riot/2576
3.9.3 April 16, 2018
riot:
- Fix: filter failure when looping on a string riot/2574
3.9.2 April 14, 2018
riot:
-
Fix: the
riot.unregister
fails together withriot.mount('*')
riot/2573
3.9.1 March 31, 2018
riot:
-
Fix: keep the backward compatibility for the misleading use of the
<virtual data-is>
tags riot/2564
3.9.0 February 18, 2018
riot:
- Add: support for JSPM riot/2540
- Update: improve memory usage
- Update: partial refactoring improving the code base maintainability
3.8.1 December 28, 2017
riot:
-
Fix: prefer
console.warn
to hardException Errors
to avoid breaking changes riot/2511
3.8.0 December 28, 2017
riot:
-
Fix: misleading use of
virtual
tags together withdata-is
attribute riot/2511 - Update: project contributors list riot/2512
riot-compiler:
- Add: experimental sourcemaps support
If you will compile using the sourcemap=true
option the compiler will return an object
containing code
and sourcemap
. The current riot compiler doesn’t use a “real parser” so the generated sourcemaps might be inaccurate
We will generate better sourcemap results in the next riot major release.
riot-cli:
-
Add: the
sourcemap
option to generate inline sourcemap - Change: all its API methods will return always promises if used in node
3.7.4 November 5, 2017
riot:
- Fix: fail to display nested custom tag in loop into SVG riot/2464
-
Fix: function passed as undefined when on a tag with an
each
loop riot/2474 -
Fix:
before-unmount
is called after destroying the DOM on child tags riot/2480 -
Fix: fix the
uid
internal function riot/2481 - Add: jsDelivr hits badge riot/2467
3.7.3 October 1, 2017
riot:
- Fix: ternary if does not behave as expected riot/2454
- Add: feature request about riot.compile riot/2451
3.7.2 September 23, 2017
riot:
- Fix: svg dynamic preserveAspectRatio don’t work riot/2445
-
Fix: scoping of
show
in Yielded Content riot/2448 - Improve: loops performance
- Improve: new tags creation preferring objects instead of function instances
- Improve: simplify parent -> children tags inheritance
riot-compiler:
- Update: dependencies and refactor some internal code avoiding bitwise operators
- Fix: coffeescript parser require riot-compiler/102
3.7.0 September 2, 2017
riot:
-
Add: improve loops performance via
key
attribute more info riot/2418 -
Add: tag options will be passed to the mixins
init
function riot/2434 -
Fix:
isMounted
returns false inside .on(“mount”) event riot/2436 - Fix: yield with ref attribute fails to load contents riot/2433
- Fix: “value” attribute is not removed if previously set and then set again to falsy value riot/2427
3.6.3 August 23, 2017
riot:
- Fix: another attempt to fix riot/2409
- Fix: riot/2428 riot/2424
- Fix: package-lock.json out of date riot/2425
3.6.2 August 18, 2017
riot:
- Fix: unmount event triggered without mount event riot/2409
- Improve: loops performance by removing old legacy code
- Improve: refactor partially the source code preferring more ES2016 syntax goodies
3.6.1 June 25, 2017
riot:
-
Remove:
riot.csp.min.js
because it’s useless in Chrome Extensions since it can be locally loaded. Useriot.csp.js
instead
riot-compiler:
- Fix: possible bug involving compilation of tags containing regex. riot/2369
- Update: using the skip-regex function from npm for sharing bwteen modules (at future).
- Update: the jsSplitter function for safer replacement of JS code, part of the next compiler.
3.6.0 June 8, 2017
riot:
-
Add: the option to block the riot automatic updates via
riot.settings.autoUpdate
more info riot/2377 - Fix: regex in
riot-tmpl:
- Fix: incorrect regex that matches literal regexes
- Fix: use shared regex parser for browser and server versions
riot-compiler:
- Fix: various issues with literal regexes
3.5.1 May 21, 2017
riot-tmpl:
-
Fix:
}
in output when expression contains)/
riot/2361
riot:
- Fix: inline DOM templates only work on top level tags riot/2359
-
Fix: the result of
riot.version
is displayed as WIP riot/2352
3.5.0 May 13, 2017
riot:
- Add: enable the use of DOM inline templates more info riot/2296
- Add: easier svg sub tags support riot/2290
- Fix: better error message riot/2335
- Fix: show on nested tags prefers parent’s context riot/2333
- Fix: attributes not updating in v.3.4.4 riot/2343
- Fix: bring back data-ref and ref riot/2348
riot-cli:
- Fix: fix rollup false positive warnings rollup-plugin-riot/89
3.4.4 April 30, 2017
riot:
-
Fix: remove
ref
attributes avoiding to parse them twice riot/2329 - Fix: avoid to remove attributes for truthy properties riot/2331
- Fix: support for IE11 events handling riot/2332
3.4.3 April 24, 2017
riot:
- Fix: fair angular library size comparison riot/2325
- Fix: data-is works differently as expression to hard-coded attribute riot/2321
-
Fix: scope differs between
if
andshow
riot/2125
riot-cli:
- Fix: error exception reporting cli/26
3.4.2 April 14, 2017
riot:
- Fix: “data-is” attribute is being removed if you mount on the same element riot/2317
- Fix: riot attributes remain in output riot/2316
3.4.1 April 9, 2017
riot:
-
Fix: parent tag data-is is reset when disabling a nested tag with
if="...
riot/2311 - Fix: object is not valid in “show” anymore riot/2300
- Fix: undefined not handled as empty string (in tags) riot/2297
-
Fix:
<div if="...">
containing<div data-is="...">
does not unmount tag properly riot/2307
3.4.0 March 26, 2017
riot:
-
Fix:
riot-
prefixed attributes will be no longer prefixed in theopts
object riot/2103 -
Fix:
Null
andundefined
expressions will be no longer converted into empty strings for the tag attributes riot/2080 - Fix: style attribute with expressions makes show directive invalid at the beginning riot/2178
- Fix: riot will not force all the expressions evaluating them as strings riot/2310
-
Add: add support for
style
andclass
object expressions more info here and here
3.3.2 March 5, 2017
riot:
- Fix: tag root attributes out of sync riot/2280
- Fix: virtual tag doesn’t work with each in server side rendering riot/2220
- Fix: using es6 classes mixins, some functions are lost riot/2219
- Fix: rendering issue with tag iteration/re-ordering riot/2271
- Fix: ES6 template literals forward slashes issue riot/2167
-
Fix: re add the
riot.version
attribute - Improve: remove dead code
- Improve: increase code coverage to 100%
3.3.1 February 19, 2017
riot:
- Fix: shouldUpdate prevents every update riot/2118
riot-compiler:
- Fix: es6 template strings issue riot/2167
-
Add: support for shortcut generator functions
* foo()
3.3.0 February 18, 2017
riot:
-
Add: fine grain control over tag updates by passing nextOpts to
shouldUpdate
riot/2238
riot-compiler:
-
Fix: es6
import
regex compatibility issues riot/2263 -
Add: support for
async
shortcut methods riot/2195
3.2.1 February 10, 2017
riot:
- Fix: error when using virtual and update handler riot/2251
- Change: switch from plegie to opencollective as donation platform riot/2239
3.2.0 February 6, 2017
riot:
- Fix: disable the global mixins for the anonymous tags riot/2056
-
Fix: setting selected attribute of multiple
<option>
tags in a multi select does not work properly riot/2247 - Fix: mount event not fired due to listener for wrong event riot/2249
-
Add: the
riot.settings.skipAnonymousTags
flag more info -
Improve: the looped tags rendering is ~30% faster than before mainly for the
anonymous
tags
3.1.1 February 4, 2017
riot:
- Fix: issue removing tags in a loop riot/2240
- Fix: tag root is not always in body when its mount event fires riot/1938
- Change: improve the rendering performance of the anonymous looped tags
riot-compiler:
- Fix: restore the support for the es6 in browser compilation using babel examples/51
3.1.0 January 29, 2017
riot:
- Fix: virtual tag is rendered when use a dynamic data-is riot/2208
- Fix: data-is attribute get removed from parent dynamic tag if child tag has yield riot/2211
- Fix: rollup server side (cjs) transpilation riot/2216 riot/2225 and riot/2224
- Fix: sorted list not displayed correctly riot/2228 riot/2205
-
Fix: conditional
if
does not work as expected with select tag and dynamic options riot/2229 -
Change: renamed the
_internal
tag property to__
, you shouldn’t use them anyway -
Change: avoid to expose the
_parent
property, it’s now included in the__
key -
Change: make the
isMounted
property not iterable and writable -
Add: the experimental
riot.reload
API to handle hot module reload via webpack more info
riot-compiler:
- Fix: style tag get stripped from riot tag even if it’s in a javascript string. riot/2210
riot-route:
- Add: tag based router riot-route/80 more-info
3.0.7 January 10, 2017
riot:
- Fix: hot fix Broke if/each combination riot/2207
3.0.6 January 10, 2017
riot:
-
Fix: inconsistencies between the
show
,hide
andif
directives riot/2158 -
Fix:
import riot from 'riot'
using webpack and babel riot/2091 - Fix: loop sorting issue riot/2205
-
Fix: issue using dynamic
data-is
attributes riot/2175 -
Fix:
if
directive in object loops riot/2133 - Fix: serverside rendering on Windows machines riot/2131
3.0.5 December 18, 2016
riot:
-
Fix: internal
parent
attribute should be protected from external override riot/2154 -
Fix: selected on
<select><option>
doesn’t seem to work right on riot 3 riot/2164
3.0.4 December 14, 2016
riot:
-
Fix: restore the
show/hide
behavior riot/2156
3.0.3 December 13, 2016
riot:
- Fix: mount and unmount css injection performances riot/2152
-
Fix: different scope between
show
,hide
andif
riot/2125 -
Add:
data-src
to fetch riot tags avoiding browsers prefetching riot/2132 - Remove: support for SPM riot/2124
3.0.2 December 4, 2016
riot:
- Fix: when using riot-viewBox inside an svg tag it is replaced by viewbox. riot/2086
- Fix: tag mounted with data-is=”{some expression}” is not updating riot/2102
- Fix: attributes are not removed when other tag without attributes is mounted on an element riot/2098
- Remove: removes SPM support riot/2124
riot-tmpl:
-
Change: avoid to use
console.error
if a user has defined already a custom error function riot/2108 - Change: prefer lowercase to debug tags names
riot-compiler:
-
Change: internal regex to support the
@apply rule
provided by css preprocessors
riot-route:
- Fix: router with query param not working riot-route/74
- Fix: remplate literals break IE riot-route/77
3.0.1 November 26, 2016
riot:
- Fix: riot@3.0.0 should export default riot/2084
- Fix: class does not remove when value becomes false riot/2082
- Fix: auto update input values after edited it with User riot/2096
- Fix: error when unmount tag that contains ref element riot/2083
- Fix: error toggling child with multiple mixins riot/2100
- Fix: toggling ‘if’ of ‘data-is’ tag creates new reference in parents ‘tags’ object riot/2089
3.0.0 November 22, 2016
It has been a long journey but in the end we made it and riot@3.0.0 is finally out and it represents a step forward compared to riot 2 for stability, performances and flexibility.
List of improvements and breaking changes
riot:
- Change: build riot using rollup+babel instead of smash using only es6 modules syntax
- Change: clean up the tests (we use 371 tests!) splitting them into several files written in es6 and we switched to chai.js replacing expect.js
- Change: improve the loop performances, now the update method is much faster than before.
-
Change: deprecate
riot-tag
in favor ofdata-is
-
Change: use the
ref
attribute instead ofname
andid
riot/1185 (breaking change) - Change: remove riot-route from the core making it optional riot/1485 (breaking change)
- Change: avoid that the update and the updated events get triggered before any tag has been mounted riot/1661 (breaking change)
- Change: different approaches in iterable objects in different contexts of “each - in” riot/1420 (breaking change)
- Add: support for es6 classes to create tags more info
-
Add: the
shouldUpdate
method to the tags to emulate componentShouldUpdate in react - Remove: the __ prefix for the “boolean” html attributes riot/276
- Remove: the automatic preventDefault from the riot DOM events riot/1770 riot/1718 riot/526 (breaking change)
- Fix: all the issues related to the if conditions riot/1477 riot/1658
- Fix: avoid to inherit properties from the parent in loops of custom children tags riot/1697
- Fix: avoid to update the parent tag on the events generated from a child tags riot/1319 (breaking change)
- Fix: arrays with multiple tags of the same name don’t contain actual tag elements riot/2061
- Fix: the data-is attribute is not updated for dynamic tags riot/2037
- Fix: virtual with each doesn’t remove tag references from parent tag riot/2029
- Fix: each and switching between object and array riot/2027
- Fix: properties set in looped custom tag element event seem to be cleared by parent update riot/2019
- Fix: riot+compiler.js:1245 Uncaught NotFoundError: Failed to execute ‘insertBefore’ on ‘Node’: The node before which the new node is to be inserted is not a child of this node - when adding to an ‘each’ structure from a recursively created element onlick riot/1962
- Fix: input numbers leave unprocessed expressions after upgrade to 2.6.0 riot/1957
- Fix: memory leak riot/1955
-
Fix:
require(*tag-name*)
does not allowparserOptions
riot/1935 - Fix: clear riot tag cache to aid with testing riot/1875
- Fix: ‘before-mount’ won’t work as expected in riot#render riot/1851
- Fix: the logic is not work with if and class together riot/1769
- Fix: should we add a updateSelf() API? riot/1748
- Fix: virtual elements disappear after tag update riot/1659
- Fix: can I use the bool attribute with the custom tag? (like “disabled”) riot/1618
- Fix: extra expression evaluation when using attributes riot/1590
- Fix: eS6 class syntax with child tags riot/1451
- Fix: different approaches in iterable objects in different contexts of “each - in” riot/1420
- Fix: support conditions with virtual tag riot/139
- Fix: riot-tag as expression in loop riot/1368
- Fix: all treeitem tag have children riot/1361
- Fix: method for clearing compiler state riot/1236
- Fix: dynamically loaded child tags don’t get into the parents tags object riot/1174
- Fix: [Q] Child tags counts not matched? riot/1088
- Fix: inconsistent tags behaviour with 1 item vs many riot/936
-
Fix: no way to override name attribute on e.g. <input>s to prevent overriding existing properties on
this
riot/715
riot-observable:
-
Remove: support for spaced events,
el.on('foo bar')
becomesel.on('foo').on('bar')
(breaking change) - Fix: optimize speed x6 faster than before
riot-tmpl:
-
Change: template errors will be always output via
console.error
if the console api is available (breaking change)
riot-compiler:
- Fix: allow the es6 import also inside the tags compiler/69
-
Fix: all the
value
attributes using expressions will be output asriot-value
to riot#1957 - Change: css generated via riot-compiler will be always scoped (breaking change)
-
Deprecate: old
babel
support, now thees6
parser will use Babel 6 by default (breaking change)
Thank you all!
Many thanks to all the riot community and to all our users who have really helped us making the best decisions to improve this framework. Special thanks go to @rogueg for his great work on the riot source code and he is now part of the riot core team. Thanks also to the other core contributors and collaborators for the hard work on this project you are awesome.
What comes next?
@tipiirai is working on a brand new riot release experimenting new rendering strategies and big core improvements that will be part of riot@4.0.0
For the next releases we will mainly focus on improving the initial rendering performances riot/2034. We will try to bring the compiler sourcemaps and a better support for hot modules replacement stay tuned!