Getting Back into Ruby Solo Hackathon, day 6: Dockerhub is down 😭
Post
Getting Back into Ruby Solo Hackathon, day 6: Dockerhub is down 😭
OK I realised I could have been live-tooting this the whole time instead of spamming groupchats 😂
Solo #Ruby Hackathon: day 7.
Context is I've been working on upgrading Levelfly, an open-source Learning Management System https://github.com/neuronic-games/levelfly/
The codebase dates back to 2011, with #Rails 3.1.
In 2021, I upgraded it, getting as far as Rails 4 and #Ruby 2.4.
That same year, @autonomic colleage @roxxers and I containerised it to move it from Heroku to a Docker Swarm deployment (using @coopcloud ).
Since then, Levelfly has just had a couple of critical infrastructure fixes… meanwhile Rails 4 hasn't had security updates since 2017¹, and Ruby 2.4 hasn't had any since 2020².
This has involved learning/relearning a LOT of things 😅 Luckily that was the name of the game.
Most satisfying thing so far has probably been finally understanding RSpec enough to be useful – specifically getting my head further around the difference between fixtures, seeds, and factories.
(And then completely ripping out the fixtures lol)
Getting basic #RSpec coverage for the key endpoints going as soon as I'd upgraded to Rails 5 was a great move; those tests have already caught all kinds of issues with the new versions.
Part of me regrets not finding a way to test S3 sooner, because file uploads have always been a big source of bugs in Levelfly, and I built up a small version-hell nightmare for myself by not checking any of that until deep into #Rails 6.
But maybe this was an OK plan: by the time I got to it, I had a lot of practice with dealing with gem dependency issues, writing #RSpec, and writing tests that require other services – all of which turned out to be crucial to getting it going.
(For the curious, I ended up switching to the `kt-paperclip` fork, and using adobe/S3Mock in testing)
Brief aside, I tried to use the fake-s3 Rubygem but the original is deprecated and the last-active fork a) seems abandoned too and b) won't launch without a licence key, is this even allowed in Rubygems.org?! https://supso.org/projects/fake-s3/register
Current status: I borked tests by removing Pusher config from the test environment, thought that was handled automatically by pusher-fake, it is not, need to RTFM.
(Live-toot megathread inspired by @foone 🤘)
#Ruby dependency hell …. well, at least purgatory … once again – acts-as-taggable-on needs an upgrade to be compatible with activerecord > 6.2, but that seems to want a zeitwerk upgrade, and THAT seems to want Ruby 3.2. Good thing I got rbenv working! 😅
#Ruby 3.2 kinda works… but seemingly several gems in the bundle use the deprecated File.exists? method (hot take but was this alias really worth removing?).
Monkeypatching third-party gem to the rescue! https://idogawa.dev/p/2023/01/file-exists-ruby.html
While I wait for `bundle update rails` – probably the most dicey step was a #Rails upgrade that required completely deleting `Gemfile.lock`.
File under "very confused that this worked".
A space for Bonfire maintainers and contributors to communicate