And it's done! Docker image built, docs tidied… ready to set up a staging server and test this out 🤘
Discussion
And it's done! Docker image built, docs tidied… ready to set up a staging server and test this out 🤘
And, with some fresh inspiration, back to my solo hackathon, Day 8 👷
So, today, "what is left to do before this could maybe be deployed?"
Firstly: test coverage. We're currently at around 40% (it's varied up and down about 3% between #Rails / #Ruby versions, which has been interesting!)
I'm not shooting for 100% – I've made the mistake before of making tests too brittle with respect to changes, and at the end of the day 100% lines covered doesn't necessarily mean 100% of functionality covered anyway.
But some of the key models and controllers are very minimally tested, which feels worth improving given the scale of the changes.
First order of business is to see if #RSpec or #SimpleCov can tell me which methods (as opposed to lines) are covered – I'd be happy enough for now if each controller and model method is at least executed.
I'm also interested in setting up #Coveralls (maybe there are other similar services, but this is the only one that seems to have a Drone Plugin¹ for it already).
I'm not currently sure if if it makes sense to have coverage enforced by a CI step – but at least making this data more visible seems like a great start (and personally is helping the work I've done over the last week feel less abstract)
I'm 90% sure that extending the test suite will smoke out other problems introduced by #Rails / #Ruby upgrades that I hadn't caught yet.
Of course, building a more comprehensive suite back on day 1 (Rails 4.2 😬) would have mitigated this – but I was really struggling with dependencies on such old versions of Ruby and Rails, keen to start making progress – and I was satisfied that 40% coverage was better-enough than 0% to get on with it.
After that, I want to focus on the #Docker image.
Somehow – despite applying a couple of Dockerfile tricks I've picked up since my last #Levelfly containerisation work back in 2021 – the image has ballooned from 400MB to 1.8GB, and I'd like to get that back down to size.
Part of this will likely involve publishing separate "development" and "production" images, to save new project contributors from a docker build process.
Woohoo, found my first bug thanks to extended #RSpec coverage 🥳
No luck getting #Simplecov to show me a list of uncovered methods yet, though 🤔
A space for Bonfire maintainers and contributors to communicate