Hexo: Drop NodeJs 6 support & Require NodeJs >= 8.6

Created on 28 Mar 2019  ·  21Comments  ·  Source: hexojs/hexo

This year, at the end of April, nodejs 6 will be 'End of Life'
We are starting to see project dropping support for nodejs 6. and as a consequence, we will need to drop that support also if we want to update our dependencies.

See https://github.com/hexojs/hexo-server/pull/85 as a first example

We should decide if we are ok with doing so, because once we start, we'll have to update in cascade most projects

We should also plan to communicate (blog post) on this

Maybe that could also be a trigger for Hexo v4 #2492

What do you think?

Breaking Change dependencies discussion

Most helpful comment

OK...

Conclusion

  • Drop Node.js v6

    • Bump to Hexo v4.0

  • Current Hexo v4.0 roadmap slide to v5.0

TBD

  • Node.js require version is >=8.0 or >=8.6

    • I agree with @weyusi (>=8.6)

  • Release schedule

Others

@hexojs/core

Do you have any suggestion?
And would you please some comment or emoji reactions? We will start to drop Node.js v6 support if some opposite opinion is nothing.

All 21 comments

IMHO, current Hexo v4 loadmap has many tasks.
We should narrow down a issue for Hexo v4 & should drop Node.js v6 support.

PS. I think, this issue's priority is higher than the other Hexo v4 loadmap's tasks.

@NoahDragon
Would you please give us advice?

I believe we should proceed with the removal of node 6
When done, we should publish a new major version of each component

I'm just worried about hexo itself, as we were planning lots of new stuff for version 4,
and version 4 might just be caused by the removal of node 6

@tomap
you mean the hexo version should be bumped to v4 in light of dropping of node 6?

Personally I wouldn't mind if minor version bump instead (i.e. v3.9.0). I know it's not a good versioning practice and it would break Node 6 users with hexo ^3.8.0. For those users, they can either upgrade Node or force version 3.8.0, meaning the breaking change can be easily fixed.

Alternatively, bump to v4, change roadmap to v5. It's not too bad if communicated clearly (on the needs to drop node 6) on #2492 and blog post. I feel dropping Node 6 by itself is already major enough, it not only allow hexo to use more updated deps, but also use new js features. Both of my PRs (https://github.com/hexojs/hexo-generator-sitemap/pull/46 https://github.com/hexojs/hexo/pull/3538) require Node >=8.6 simply because of the use of Object spread operator.

I do not have a clear preference....
Both alternatives make sense to me. Either be more flexible with semantic versioning, or move v4 issues to v5 to make space for dropping node6

If there are only two buttons, I would press on "minor version". Dropping node in a minor version is not that bad; nunjucks added node version requirement (from *) in a _patch_ version, and only caused #3380 in hexo, which was easily worked around.

Alternatively, bump to v4, change roadmap to v5.

IMHO this idea is better than minor version up. But, I think the biggest issue is "who decides this matter?".

It is becoming a matter of security.
Few security vulnerabilities are poping up and the only way to fix them is to update and loose nodejs 6 compatibility

I would go with the solution of @YoshinoriN => bump to v4 = end of nodejs 6
bump to v5 = current v4 roadmap

v4 -> v5 seem safer.

On node requirement, I would like to suggest "node": ">= 8.6.0". node.green shows node 8.2 doesn't support some js features (that some deps require), while 8.6 & 8.9 have features parity.

OK...

Conclusion

  • Drop Node.js v6

    • Bump to Hexo v4.0

  • Current Hexo v4.0 roadmap slide to v5.0

TBD

  • Node.js require version is >=8.0 or >=8.6

    • I agree with @weyusi (>=8.6)

  • Release schedule

Others

@hexojs/core

Do you have any suggestion?
And would you please some comment or emoji reactions? We will start to drop Node.js v6 support if some opposite opinion is nothing.

If you guys want to drop NodeJS 6 support, then #3328 should be considered.

Thanks @SukkaW :)

Dear all
I will set target Node version to >=8.6.
Is it OK?

I think it's fine to drop node v6. I can see that some people want to make contributions but the unit tests can sometimes fail because es6 features.

I might ask that we consider completing hexo v4 roadmap tasks, if they still make sense, for hexo v4 and not push them to hexo v5. I will try to help too.


Thanks for everyone who added to the discussion! 🤗

I created v4.0.0 loadmap & changed #2492 issue title.

@YoshinoriN
can you also create a Project as well, to track other repos? Too bad Milestone can't track multiple repos.

@weyusi
It's a nice idea :)
But, It seems I can't. Maybe it requires owner permission. (I'm member permission)

Project board permissions for an organization

I think most of the essential plugins have already dropped node 6 by now, just not yet npm-published. So, hexo v4 is more or less ready, unless there are some pending issues.

If there is any pending issue, the following are the ones I can think of:

  1. https://github.com/hexojs/hexo-math/pull/94
  2. https://github.com/hexojs/hexo-theme-landscape/pull/139

In relation to https://github.com/orgs/hexojs/teams/core/discussions/5, I think plugins should be released right after hexo@4, meaning hexo should be the first to introduce breaking change.

Basically, I agree @curbengh

But, IMHO we should publish these plugins before release hexo v4.
It's better these new versions should include hexo v4.

I see what you mean. Those plugins, in addition to these plugins (of hexo-starter) should be published before hexo@4. Other non-essential plugins can be released before or after hexo@4.

I create v4 PR https://github.com/hexojs/hexo/pull/3695 with a checklist of deps to be updated.


I suggest we feature freeze for now and focus on the remaining task of #3695.

Was this page helpful?
0 / 5 - 0 ratings