Upgrade fatigue

I love Ghost, it’s so much better than WordPress which I was using before. However, I’m getting upgrade fatigue. Any given week there are three or more patch releases, or a new minor release. What’s worse, I use the official Ghost Docker image, and it can take DAYS for Jenkins to build the new images on Docker Hub.

Is Ghost 6 on the horizon? Already we’re at minor version 51 on Ghost 5, and it has had two patch releases in the last week. I just got Ghost 5.51.1 yesterday after waiting several days for the official Docker image to be built (there were several patch releases in the interim). Today Ghost 5.51.2 was released, and the cycle begins anew. I got the notice of 5.51.2 this morning at 04:19:56 EDT. It’s been 18 hours and Jenkins for Docker Hub still shows 5.51.1.

I ask about Ghost 6 because my goal is to continue to track Ghost 5, if only so I don’t get as many upgrades in a week (or more often). I don’t know if there’s a better forum to post this concern, this seemed the most appropriate.

EDIT: And before anyone mentions Ghost(Pro), I’m a do-it-yourself (DIY) kind of user. I’m a die-hard Linux enthusiast, and I like building software systems in my spare time. This is mainly for small, family-oriented, and hobbyist projects. I don’t have the budget for something that costs me more than zero dollars. Like I said, I do this for a hobby so I don’t put a value on my time that way.

It’s not necessary to take every minor update. Typically, I would update Ghost once every couple of weeks or so, unless a critical security update is announced or a feature I’d like is released.

The frequency of updates should be seen as a positive; Ghost is actively being worked on by a team of open-source developers.

Moreover, whilst Docker Hub states that the image is “official “, this simply means that it is a curated image not and official Ghost image—it’s maintained by the Docker community not Ghost.

4 Likes

I love this aspect of Ghost. One idea perhaps that might help, is to have an update button inside the GUI so it’s easier to update for all of us who self-host.

I also an looking forward to what Ghost 6.0 is gonna bring. I hope it’s gonna be awesome.

3 Likes

Martin,

Many of the patch releases say they contain bug fixes, so I should at least
track each patch release. What I can do is only track the x.y.1+ patch
releases, instead of the x.y.0 release.

When an x.y.0 release is made, simply not upgrade until we get to y+1, and
install x.y.z, whatever z may be (0+). Unfortunately, all of this means I have
to pay more attention and think about it before I upgrade. Not impossible, but
it is something I need to consider.

Trey Blancher

I’d also like to add many mature projects have the concept of long-term support
(LTS) releases. To avoid upgrade fatigue I can track the LTS release, where
only security and bug fixes are made, rather than adding new features.

If Ghost had an LTS release, it would be Ghost 4 if anything. But Ghost 5
introduced the native comment feature, which I desire. So I’ll have to follow
my workaround until Ghost 6 is released, if Ghost officially blesses Ghost 5 as
LTS.

That’s a roadmap design feature, and what Ghost is willing to maintain. If
they’re not willing to maintain an LTS as well as the latest current release,
I’ll have to avoid upgrade fatigue on my own.

1 Like

I think this level of tracking is unnecessary. Monitor for critical updates or if a feature you need is broken (typically this kind of bug is fixed quickly.)

An LTS release still has regular updates. Indeed, that’s the reason for an LTS.

My server OS (Ubuntu 22.04) takes updates more frequently than Ghost (which doesn’t surprise me), and I use the requirement for a reboot to schedule Ghost updates, which is is typically every couple of weeks.

Moreover, there’s nothing preventing you sticking with an earlier release so long as system prerequisites are maintained, e.g., Node, MySQL etc.

My server OS (Ubuntu 22.04) takes updates more frequently than Ghost…

Yes, but that’s an entire OS, and it’s not likely they have a kernel upgrade every day (which is typically the only reason you need to reboot, unless there are kernel modules/DKMS that need a reboot as well).

I run Arch Linux on my VPS running my Docker Compose stack, and I only update it every week (or less often), and many times only upgrade when I’m installing a package from the Arch package repos. Ghost (TryGhost) sends me updates on new Ghost features much more frequently, and since I track the official Docker image on Docker Hub, I have to wait for donated resources to build the image.

What I don’t know is if the Docker community builds all images, or skips any if Ghost makes several releases before the images are built (this happens quite frequently). For instance, the latest version of Ghost at the moment is 5.52.0, and I don’t know if 5.51.2 will be built before 5.52.0, or whether it will be skipped in favor of the latest version. I’ll find out as sonn as Jenkins shows the latest version built (either 5.51.2 or 5.52.0, or some later release).

That’s my point, I’ll update Ghost when I am notified by my server that a reboot is needed. At that time, I update Ghost, and schedule a reboot.

The only times I update outside of this schedule is for critical security updates.

I don’t apply updates automatically (docker or otherwise), and I don’t track the meta tag latest in any of my docker images in order to avoid any unexpected (potentially-breaking) upgrades. Typically in that week or so Arch releases a new kernel, so a reboot is generally required each time I upgrade.

I typically upgrade all my software once a week (or less often), but I don’t need to wait for that to upgrade Ghost. Thus far I try to track the latest stable release of the official Docker Hub image. I’m waiting for the Docker community to build the 5.52.0 image, to see if 5.51.2 is available after that (I can’t find any documentation which suggests whether the community skips any versions).

Well, it looks like the Docker Community doesn’t build interim versions, whenever they get around to it they only build the latest release. So I won’t be able to stay one minor version behind (since the patch releases don’t appear to be built if a new minor version comes out). 5.52.1 was finally built, and 5.51.2 does not exist on Docker Hub.

This is highly disappointing, and this problem doesn’t look like there will be any feasible solution. Why it takes so long to build these releases is beyond me, but I have no control over that. Other software doesn’t take nearly this long, but then again they don’t release every few days like Ghost does.

These images are prepared by community volunteers, and shared freely. Have you considered helping them?

2 Likes

Martin,

I’ve looked into it. The Docker Community has donated resources (hardware
and/or virtual machines). They do not have documentation that says how
individuals like me can help with building these images (i.e., they do not ask
for help in the way you suggest).

I track several official images on Docker Hub. None of them update as
frequently as Ghost. Also, none of them take so long for Docker Hub to build
their images (they typically show up about 24 hours or less once the
announcement of a new version is made).

Ghost is a particular problem, probably due to so many frequent updates. I can
reach out to the #docker channel on Libera (irc://#docker@libera), but beyond
that I probably won’t be able to volunteer to improve the situation.