lewagon / setup

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

[Important PR~not to merge without deployment plan] Upgrade to Ruby 3.3.5 #475

Closed ajdubovoy closed 1 month ago

ajdubovoy commented 1 month ago

OK, I can't believe this is finally finished. I went through every web-dev or assess repo and upgrading the Ruby version and standardized the Rails and Puma versions.

cc @Eschults @mathildetestard

Here was basically my process:

  1. Go through every single repo (most of which are solutions/examples) and upgrade the relevant versions.
  2. Set up the DB and run server.
  3. Click around and make sure it seems like all the core features are working.

I didn't find that many huge bugs, but without automated testing on most of these, it's a bit hard for me to say there aren't any with 100% certainty.

Then I went to fullstack-solutions and did a version update there and ran rake_all to check for any broken rake tests in any challenges.

Finally, I went to fullstack-challenges and added a .ruby-version file (there wasn't already one there).

The only thing I wonder if it could slip through the cracks right now is maybe if there's a challenge where there's no rake but something weird and technical broke....it's entirely possible but a bit hard for me to predict in advance.

Sooooo many repos affected.

Related PRs:

ajdubovoy commented 1 month ago

I'm also not really sure what the best deployment approach is here. It's sooooo many repos that I'd really like to avoid having to do some kind of a beta branch in an ideal world

mathildetestard commented 1 month ago

Huge work, thanks @ajdubovoy πŸ‘

Hi @Eschults & @pmochkovitch πŸ‘‹ What are you reco regarding deploying this change?

Thanks πŸ™

Eschults commented 1 month ago

No need for a beta branch indeed, I recommend:

  1. merging the AI evolution on Sept 28th
  2. switching batches from the AI program to the master program
  3. pulling a no-update branch from master for running batches (we don't want students to change versions in the middle of their batches)
  4. switching running batches to no-update
  5. merging this in master for upcoming batches πŸ‘Œ

You will need help from Engineering for steps 2 and 4, feel free to ping me πŸ‘

ajdubovoy commented 1 month ago

OK! Wow, making a no-update branch for this will end up being a lot of fishing, because we'll also have to move links to all the related repos to no-update. Unless we're OK with most of the Rails solution repos being on the new Ruby version even for batches where students' computers aren't on that version yet

Eschults commented 1 month ago

Hmm let's limit the no-update branches to repos students are expected to clone / run rails s with. Teachers should be able to switch versions and I don't foresee any impacts on the corresponding demos / livecodes πŸ€”

Most solutions are there for students to check the code, not clone / run it as it is, even if it's a plus if they can πŸ‘Œ

ajdubovoy commented 1 month ago

Hi @Eschults reposting from Slack, since I know you're not on black Slack as much. Should we try to merge this today if possible? I just realized that most full-time batches have setup day this coming Monday, so we should do the merge before then. Thanks so much!


Hi :wave: I have prepared no-update branches in: https://github.com/lewagon/fullstack-solutions https://github.com/lewagon/fullstack-challenges https://github.com/lewagon/fullstack-meta https://github.com/lewagon/fullstack-livecodes https://github.com/lewagon/karr https://github.com/lewagon/setup

(https://lewagon-alumni.slack.com/archives/D057SEYMAP4/p1727957888854059) I wasn’t able to do it in https://github.com/lewagon/flashcards since the no-update branch there is protected and I don’t have permissions to modify it

ajdubovoy commented 1 month ago

On lewagon/flashcards, just in case, I just made a no-update-ruby-3.3.5 branch so we have something

Eschults commented 1 month ago

Thank you @ajdubovoy for creating the branches πŸ™Œ I just ran πŸ‘‡ to switch running web batches to the Web Development without update program πŸ‘Œ

> Camp.running.where(program_id: 1).update_all(program_id: 52)
=> 14
> p = Program.find(52)
> p.update_shas
=> true

Merging PRs now πŸ‘

Eschults commented 1 month ago

βœ… Done. There is a handful of PRs w/ conflicts, I assigned them to you, feel free to self-merge when solved πŸ‘

ajdubovoy commented 1 month ago

Thank you!