Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop support of node < 8 #159

Merged
merged 1 commit into from
May 29, 2019
Merged

Conversation

dhritzkiv
Copy link
Member

node 8 is the oldest currently supported version.

Building on node 5 (and possibly 6) causes certain nan/v8 calls to fail. This prevents the build/upload of prebuilt binary artefacts.

Questions:

  • should this be a semver major release? If so, should 4.3.0 be unpublished (since it doesn't technically support node < 8)?

node 8 is the oldest currently supported version.

Building on node 5 (and possibly 6) causes certain nan/v8 calls to fail.
@dhritzkiv dhritzkiv requested a review from mourner May 23, 2019 22:36
@@ -14,5 +14,5 @@ PACKAGE_JSON_VERSION=$(node -e "console.log(require('./package.json').version)")

if [[ ${COMMIT_MESSAGE} == ${PACKAGE_JSON_VERSION} ]]; then
echo "running prebuild"
node ./node_modules/prebuild/bin.js --all --strip -u ${GITHUB_TOKEN}
node ./node_modules/prebuild/bin.js -t 8.0.0 -t 9.0.0 -t 10.0.0 -t 11.0.0 -t 12.0.0 --strip -u ${GITHUB_TOKEN}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we build for "dev" versions after the stable ones are released? (specifically v9 and v11 here)
Also, does .0.0 act as asterisk (for latest version of that major number) or it really builds for the exact version?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought about that, especially since node 9 is no longer supported (8 is, under LTS). But I figured that if it works, then there's no sense in really dropping it. 11, while not LTS, is still supported. I'm open to dropping 9 support.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It works as an asterisk, essentially. Ever since node 4, I believe, the node ABI is consistent within major versions. So, building for 10.0.0 is the same as for 10.15.3 (i.e. ABI version is 64)

I'm using the values which are required from here

@dhritzkiv dhritzkiv mentioned this pull request May 24, 2019
@dhritzkiv
Copy link
Member Author

To do: I will also include electron prebuilds (since we previously offered them)

@dhritzkiv
Copy link
Member Author

dhritzkiv commented May 24, 2019

For anyone curious, here's the popularity of each prebuilt asset download from 4.2.2:

[
            {
              "name": "gl-v4.2.2-node-v48-darwin-x64.tar.gz",
              "downloadCount": 26
            },
            {
              "name": "gl-v4.2.2-node-v47-darwin-x64.tar.gz",
              "downloadCount": 4
            },
            {
              "name": "gl-v4.2.2-node-v51-darwin-x64.tar.gz",
              "downloadCount": 9
            },
            {
              "name": "gl-v4.2.2-node-v57-darwin-x64.tar.gz",
              "downloadCount": 236
            },
            {
              "name": "gl-v4.2.2-node-v59-darwin-x64.tar.gz",
              "downloadCount": 35
            },
            {
              "name": "gl-v4.2.2-node-v64-darwin-x64.tar.gz",
              "downloadCount": 490
            },
            {
              "name": "gl-v4.2.2-electron-v47-darwin-x64.tar.gz",
              "downloadCount": 4
            },
            {
              "name": "gl-v4.2.2-electron-v48-darwin-x64.tar.gz",
              "downloadCount": 4
            },
            {
              "name": "gl-v4.2.2-electron-v49-darwin-x64.tar.gz",
              "downloadCount": 5
            },
            {
              "name": "gl-v4.2.2-electron-v50-darwin-x64.tar.gz",
              "downloadCount": 4
            },
            {
              "name": "gl-v4.2.2-electron-v57-darwin-x64.tar.gz",
              "downloadCount": 5
            },
            {
              "name": "gl-v4.2.2-electron-v54-darwin-x64.tar.gz",
              "downloadCount": 4
            },
            {
              "name": "gl-v4.2.2-electron-v51-darwin-x64.tar.gz",
              "downloadCount": 4
            },
            {
              "name": "gl-v4.2.2-electron-v64-darwin-x64.tar.gz",
              "downloadCount": 7
            },
            {
              "name": "gl-v4.2.2-electron-v53-darwin-x64.tar.gz",
              "downloadCount": 4
            },
            {
              "name": "gl-v4.2.2-electron-v47-linux-x64.tar.gz",
              "downloadCount": 4
            },
            {
              "name": "gl-v4.2.2-electron-v48-linux-x64.tar.gz",
              "downloadCount": 4
            },
            {
              "name": "gl-v4.2.2-electron-v49-linux-x64.tar.gz",
              "downloadCount": 4
            },
            {
              "name": "gl-v4.2.2-electron-v50-linux-x64.tar.gz",
              "downloadCount": 4
            },
            {
              "name": "gl-v4.2.2-electron-v51-linux-x64.tar.gz",
              "downloadCount": 4
            },
            {
              "name": "gl-v4.2.2-electron-v53-linux-x64.tar.gz",
              "downloadCount": 4
            },
            {
              "name": "gl-v4.2.2-electron-v54-linux-x64.tar.gz",
              "downloadCount": 4
            },
            {
              "name": "gl-v4.2.2-electron-v57-linux-x64.tar.gz",
              "downloadCount": 4
            },
            {
              "name": "gl-v4.2.2-electron-v64-linux-x64.tar.gz",
              "downloadCount": 5
            },
            {
              "name": "gl-v4.2.2-node-v47-linux-x64.tar.gz",
              "downloadCount": 6
            },
            {
              "name": "gl-v4.2.2-node-v48-linux-x64.tar.gz",
              "downloadCount": 288
            },
            {
              "name": "gl-v4.2.2-node-v51-linux-x64.tar.gz",
              "downloadCount": 1011
            },
            {
              "name": "gl-v4.2.2-node-v57-linux-x64.tar.gz",
              "downloadCount": 4210
            },
            {
              "name": "gl-v4.2.2-node-v59-linux-x64.tar.gz",
              "downloadCount": 205
            },
            {
              "name": "gl-v4.2.2-node-v64-linux-x64.tar.gz",
              "downloadCount": 4308
            },
            {
              "name": "gl-v4.2.2-node-v67-linux-x64.tar.gz",
              "downloadCount": 318
            }
]

Take aways:

  • node 8 and node 10 are most popular.
  • node v7 is relatively popular (and more than twice as popular as 9 and 11, combined)
  • node 6 is slightly more popular than 9.
  • electron downloads are blips

@dhritzkiv
Copy link
Member Author

Updates:

  • I've reconsidered my position on electron pre-builds. The number of electron prebuilt downloads is too insignificant to support.
  • I won't issue a semver major release for two reasons:
    1. End-of-life versions of node (which we're not supporting) are not expected to be supported. In short, this is not an ipso facto breaking change.†
    2. 4.3.0 (where the breaking change was introduced) is already published, and cannot be unpublished (past the 72 hour grace period).

†Users stuck on node <8 can pin their version to v4.2.2.

@dhritzkiv dhritzkiv merged commit 3c8c140 into stackgl:master May 29, 2019
dhritzkiv added a commit that referenced this pull request May 29, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants