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:
skipAnonymousTagssetting doesn’t effect mount event in global mixin riot/2635
3.13.0 October 20, 2018
riot:
-
Add: The
keepValueAttributessetting to enable falsyvalueattributes 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
binfolder 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 auditdev 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.unregisterfails 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.warnto hardException Errorsto avoid breaking changes riot/2511
3.8.0 December 28, 2017
riot:
-
Fix: misleading use of
virtualtags together withdata-isattribute 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
sourcemapoption 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
eachloop riot/2474 -
Fix:
before-unmountis called after destroying the DOM on child tags riot/2480 -
Fix: fix the
uidinternal 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
showin 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
keyattribute more info riot/2418 -
Add: tag options will be passed to the mixins
initfunction riot/2434 -
Fix:
isMountedreturns 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.jsbecause it’s useless in Chrome Extensions since it can be locally loaded. Useriot.csp.jsinstead
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.autoUpdatemore 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.versionis 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
refattributes 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
ifandshowriot/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 theoptsobject riot/2103 -
Fix:
Nullandundefinedexpressions 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
styleandclassobject 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.versionattribute - 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
shouldUpdateriot/2238
riot-compiler:
-
Fix: es6
importregex compatibility issues riot/2263 -
Add: support for
asyncshortcut 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.skipAnonymousTagsflag more info -
Improve: the looped tags rendering is ~30% faster than before mainly for the
anonymoustags
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
ifdoes not work as expected with select tag and dynamic options riot/2229 -
Change: renamed the
_internaltag property to__, you shouldn’t use them anyway -
Change: avoid to expose the
_parentproperty, it’s now included in the__key -
Change: make the
isMountedproperty not iterable and writable -
Add: the experimental
riot.reloadAPI 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,hideandifdirectives riot/2158 -
Fix:
import riot from 'riot'using webpack and babel riot/2091 - Fix: loop sorting issue riot/2205
-
Fix: issue using dynamic
data-isattributes riot/2175 -
Fix:
ifdirective in object loops riot/2133 - Fix: serverside rendering on Windows machines riot/2131
3.0.5 December 18, 2016
riot:
-
Fix: internal
parentattribute 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/hidebehavior riot/2156
3.0.3 December 13, 2016
riot:
- Fix: mount and unmount css injection performances riot/2152
-
Fix: different scope between
show,hideandifriot/2125 -
Add:
data-srcto 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.errorif 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 ruleprovided 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-tagin favor ofdata-is -
Change: use the
refattribute instead ofnameandidriot/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
shouldUpdatemethod 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 allowparserOptionsriot/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
thisriot/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.errorif the console api is available (breaking change)
riot-compiler:
- Fix: allow the es6 import also inside the tags compiler/69
-
Fix: all the
valueattributes using expressions will be output asriot-valueto riot#1957 - Change: css generated via riot-compiler will be always scoped (breaking change)
-
Deprecate: old
babelsupport, now thees6parser 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!
