-
Notifications
You must be signed in to change notification settings - Fork 130
CI: remove Node 6 and add Node 12 and 14 #509
Conversation
See https://nodejs.org/en/about/releases/ Node 10 is currently in maintanance mode. Node 12 and 14 are the active and current versions.
I'm happy to do the upgrade (and keep 8 for the moment) but this exposes a problem with the code since the tests don't pass on node 12 and 14 (technically 11+). The root cause appears to be related to the specificity sorting, which is inconsistent when the specificities are identical. This leads to the output being different in newer versions of node - see nodejs/node#24294 for more details. Without getting too deep into that topic, I wonder which is better - adding more node versions (knowing that the test suite fails on these new versions) or fixing the code first? I'm not very keen on making a change that will lead to persistently failing tests. |
@gravitystorm Yes. Thanks for the pointers to the Node issue. It would definitely be better to solve the failing tests first. I tried to implement stable sorting on definitions that have equal specificity, based on the elements in the definition, and if those are equal based on the zoom level of the definition. I hope this will give stable results for all tested Node versions. Slightly off topic: Most of the test fixtures (all the |
Great, thanks! This is the kind of approach I was playing with last week, so I'm happy to merge as-is. I realise that there is a very narrow range of situations where this new sorting order might change the rendered output for some people who (accidentally) relied on the previous sorting behaviour, and who haven't changed between node versions, but at least this will be more reliable going forward.
I don't know the background to how the Thanks again for your work on this! |
The CI config for Travis and Appveyor have been upgraded. The Node versions were outdated, and current/modern versions were not being tested.
See https://nodejs.org/en/about/releases/
Node 8 is end of life (unmaintained), but I left it for some compatibility. It should be good to remove it if maintainers agree.
Node 10 is currently in maintanance mode.
Node 12 and 14 are the active and current versions. The Travis tests also contain versions 11 and 13 (non-LTS).