From 3c39bdf5d32301e95ae229c5bf9bb05a1a4b1d2e Mon Sep 17 00:00:00 2001 From: Frederic Hemberger Date: Thu, 25 Apr 2019 07:06:19 +0200 Subject: [PATCH] Remove ARMv6 from releases starting v12.0.0 (#2205) Ref: - #2204 - https://github.com/nodejs/build/issues/1677#issuecomment-486204349 --- layouts/partials/primary-download-matrix.hbs | 11 ++++-- scripts/helpers/downloads.js | 41 +++++++++++++------- scripts/helpers/semver-gte.js | 11 ++++++ 3 files changed, 47 insertions(+), 16 deletions(-) create mode 100644 scripts/helpers/semver-gte.js diff --git a/layouts/partials/primary-download-matrix.hbs b/layouts/partials/primary-download-matrix.hbs index 7a7c918c6ddc5..aa99321469e11 100644 --- a/layouts/partials/primary-download-matrix.hbs +++ b/layouts/partials/primary-download-matrix.hbs @@ -70,9 +70,14 @@ {{downloads.LinuxBinaries}} (ARM) - ARMv6 - ARMv7 - ARMv8 + {{#semver-gte version.node "12.0.0"}} + ARMv7 + ARMv8 + {{else}} + ARMv6 + ARMv7 + ARMv8 + {{/semver-gte}} diff --git a/scripts/helpers/downloads.js b/scripts/helpers/downloads.js index 52fffa2cdc2fa..95cce743cda38 100644 --- a/scripts/helpers/downloads.js +++ b/scripts/helpers/downloads.js @@ -2,7 +2,7 @@ const semver = require('semver') -const postMergeDownloads = [ +const allDownloads = [ { 'title': 'Windows 32-bit Installer', 'templateUrl': 'https://nodejs.org/dist/v%version%/node-v%version%-x86.msi' @@ -77,9 +77,6 @@ const postMergeDownloads = [ } ] -// Latest releases (v8.x and above) don't offer 'Linux PPC BE 64-bit Binary' any longer -const latestDownloads = postMergeDownloads.filter(download => download.title !== 'Linux PPC BE 64-bit Binary') - // v0.x of Node.js const legacyDownloads = [ { @@ -132,21 +129,39 @@ const legacyDownloads = [ } ] -function resolveUrl (item, version) { +const resolveUrl = (item, version) => { const url = item.templateUrl.replace(/%version%/g, version) return Object.assign({ url }, item) } -module.exports = (version) => { - let downloads = latestDownloads +const resolveDownloads = (version) => { + let downloads = allDownloads + if (semver.satisfies(version, '< 1.0.0')) { - downloads = legacyDownloads - } else if (semver.satisfies(version, '< 8.0.0')) { - downloads = postMergeDownloads - } else if (semver.satisfies(version, '>= 10.0.0')) { + return legacyDownloads + } + + if (semver.satisfies(version, '>= 8.0.0')) { + downloads = downloads.filter(ver => + ver.title !== 'Linux PPC BE 64-bit Binary' + ) + } + + if (semver.satisfies(version, '>= 10.0.0')) { downloads = downloads.filter(ver => ver.title !== 'Linux 32-bit Binary' && - ver.title !== 'SmartOS 32-bit Binary') + ver.title !== 'SmartOS 32-bit Binary' + ) + } + + if (semver.satisfies(version, '>= 12.0.0')) { + downloads = downloads.filter(ver => + ver.title !== 'ARMv6 32-bit Binary' + ) } - return downloads.map((item) => resolveUrl(item, version)) + + return downloads } + +module.exports = (version) => + resolveDownloads(version).map((item) => resolveUrl(item, version)) diff --git a/scripts/helpers/semver-gte.js b/scripts/helpers/semver-gte.js new file mode 100644 index 0000000000000..6b28b5d159c23 --- /dev/null +++ b/scripts/helpers/semver-gte.js @@ -0,0 +1,11 @@ +'use strict' + +const semver = require('semver') + +module.exports = function (a, b, options) { + if (arguments.length === 2) { + options = b + b = options.hash.compare + } + return semver.gte(a, b) ? options.fn(this) : options.inverse(this) +}