lewagon / setup

Setup instructions for Le Wagon's students on their first day of Web Development Bootcamp
https://www.lewagon.com
18.29k stars 1.6k forks source link

Set default nodeJS 18.18.0 #441

Open carlosferrerdev opened 1 year ago

carlosferrerdev commented 1 year ago

On September 11, 2023, NodeJS 16 was discontinued and will no longer receive support or security updates.

Update the kitt material to install the latest stable LTS version of NodeJS, which is version 18.18.0

ajdubovoy commented 7 months ago

@Eschults I don't think updating node would be a bad idea at all. In terms of technically doing it in the setup guide, it'd be quite easy. But how do you feel about us doing such an update?

Eschults commented 7 months ago

Hello @ajdubovoy 👋

We definitely should, the recommended LTS version is now 20, let's take the opportunity bump ruby to 3.2.3 at the same time (last version bump was handled in https://github.com/lewagon/setup/pull/391). Let's prepare the PRs to plan a release before Q2 batches start 👌

Besides challenges, this change impacts a lot of boilerplates / livecodes repositories, both in the @lewagon org and in the @lewagon-assess org for the French certification exam.

Let's start by creating PR using the same branch name convention for all repos, and we can decide later how we plan to release the change 🚀

ajdubovoy commented 7 months ago

Sounds good! But also sounds like quite a huge project unless I'm misunderstanding. I'm happy to take it on, but is there any sense in us coming up with a strategy beforehand? Or is it better if I just dive into all the repos and see if anything breaks when I upgrade....?

ajdubovoy commented 7 months ago

Also I don't think I have access to @lewagon-assess

Eschults commented 7 months ago

Sounds good! But also sounds like quite a huge project unless I'm misunderstanding. I'm happy to take it on, but is there any sense in us coming up with a strategy beforehand? Or is it better if I just dive into all the repos and see if anything breaks when I upgrade....?

Let's start by identifying the repos that need a change in the .rubyversion / Gemfile and prepare the PRs, this is a repetitive task that could easily be delegated, there shouldn't be any breaking changes due to the ruby bump so I don't think we need to thoroughly test every repo, maybe we can spend some time on the ones w/ more JavaScript dependencies but it could be quite straightforward if we don't need to change any packages 🤞

✅ I granted you access to @lewagon-assess

ajdubovoy commented 7 months ago

Sounds good. Hm, yeah I doubt the JS update will break anything tbh since the students barely use node anymore. I'd be more concerned about the Ruby one, but it's fortunately a smaller update.

Thank you!

ajdubovoy commented 7 months ago

@nguiban just looping you in here as well 🚀

nguiban commented 7 months ago

Hello ! I was looking at the roadmap for web dev. In March, we're going to struggle a bit to plan that, but would it be a good idea to schedule it for May-June before the July batches?

ajdubovoy commented 7 months ago

Also works for me! Nothing is breaking because of this, it's just maintenance we need to eventually do

wJoenn commented 7 months ago

@ajdubovoy @Eschults Just a heads up that but Webpack 4 is not compatible with Node 17+ because Node has migrated to OpenSSL3 but it still relies on legacy ssl protocols.

It's still possible to use a webpack 4 command by exporting the NODE_OPTIONS=--openssl-legacy-provider ENV var before running the command but at this point you should really consider moving on from Webpack 4 which has been EOLed for a few years already.

Back in my by batch we had a couple slides about how Webpack is the industry standard and that's why LeWagon is still sticking to it (if that's still what you want then bump to v5) but as far as frontend development goes Vite has really become the golden standard in any project that can use it. It's also easier to setup for you and easier to understand for the students so imo LeWagon should drop Webpack completely (which you have already done for Rails after switching to importmaps) and go with Vite instead if a bundler is still needed at all

ajdubovoy commented 7 months ago

Hi @wJoenn as far as I'm aware we've fully dropped Webpack from the curriculum already and use no-build setups in the entire front end unit and in Rails 😊

wJoenn commented 7 months ago

It's still inside the frontend unit's package.json https://github.com/lewagon/fullstack-challenges/blob/master/04-Front-End/package.json

ajdubovoy commented 7 months ago

We could probably remove it because it's never used in a challenge