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 NodeJs 6 support & Require NodeJs >= 8.6 #3508

Closed
tomap opened this issue Mar 28, 2019 · 21 comments · Fixed by #3695
Closed

Drop NodeJs 6 support & Require NodeJs >= 8.6 #3508

tomap opened this issue Mar 28, 2019 · 21 comments · Fixed by #3695
Labels
Breaking Change dependencies Pull requests that update a dependency file discussion
Milestone

Comments

@tomap
Copy link
Contributor

tomap commented Mar 28, 2019

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 hexojs/hexo-server#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?

@yoshinorin
Copy link
Member

yoshinorin commented Apr 1, 2019

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.

@yoshinorin
Copy link
Member

@NoahDragon
Would you please give us advice?

@tomap
Copy link
Contributor Author

tomap commented Jun 1, 2019

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

@curbengh
Copy link
Contributor

curbengh commented Jun 5, 2019

@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 (hexojs/hexo-generator-sitemap#46 #3538) require Node >=8.6 simply because of the use of Object spread operator.

@tomap
Copy link
Contributor Author

tomap commented Jun 6, 2019

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

@curbengh
Copy link
Contributor

curbengh commented Jun 7, 2019

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.

@yoshinorin
Copy link
Member

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?".

@tomap
Copy link
Contributor Author

tomap commented Jun 12, 2019

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

@curbengh
Copy link
Contributor

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.

@yoshinorin
Copy link
Member

yoshinorin commented Jun 16, 2019

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
  • 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.

@SukkaW
Copy link
Member

SukkaW commented Jun 24, 2019

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

@yoshinorin
Copy link
Member

yoshinorin commented Jun 25, 2019

Thanks @SukkaW :)

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

@tcrowe
Copy link
Contributor

tcrowe commented Jun 25, 2019

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! 🤗

@yoshinorin yoshinorin mentioned this issue Jun 28, 2019
53 tasks
@yoshinorin yoshinorin added this to the v4.0.0 milestone Jun 28, 2019
@yoshinorin
Copy link
Member

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

@curbengh
Copy link
Contributor

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

@yoshinorin
Copy link
Member

@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

@curbengh
Copy link
Contributor

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. Remove babel and mjs hexo-math#94
  2. chore: bump to CDN jQuery from 2.0.3 to 3.4.1 hexo-theme-landscape#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.

@yoshinorin
Copy link
Member

yoshinorin commented Jul 29, 2019

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.

@curbengh
Copy link
Contributor

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.

@curbengh
Copy link
Contributor

curbengh commented Aug 21, 2019

Since hexo-util@1 and hexo-renderer-marked@2 have been released, we're almost ready for Hexo 4.

PRs I think should be included in v4:

- [ ] #3235

@curbengh curbengh mentioned this issue Aug 30, 2019
27 tasks
@curbengh
Copy link
Contributor

curbengh commented Aug 30, 2019

I create v4 PR #3695 with a checklist of deps to be updated.


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

NoahDragon pushed a commit to hexojs/site that referenced this issue Sep 16, 2019
* docs: installation guide nodejs version

hexojs/hexo#3508

* docs: nodejs in zh-tw

* docs: update installation guide

* docs(install): recommends higher nodejs version
@yoshinorin yoshinorin unpinned this issue Oct 16, 2019
thom4parisot pushed a commit to thom4parisot/hexo that referenced this issue Jan 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Breaking Change dependencies Pull requests that update a dependency file discussion
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants