Notes on updating OpenBSD machines to current, supported versions
One of the frequently noted things about OpenBSD is that its releases have a short support period. OpenBSD generally releases security and other updates for the current release and the previous one, and only updates third party packages in the current release (cf). Since OpenBSD releases more or less every six months, this gives you at most a year of support for what you install. One of the practical results of this policy is that people wind up running unsupported releases, but let's suppose that you want to keep with supported ones. There are two general approaches.
The gold standard is to reinstall your systems from scratch using the new release, which insures more reproducible and understandable installs and also gives you the natural opportunity to rethink and re-check your customizations to make sure they're still appropriate. This is generally what we do, following our general habits for everything. Although I find its disk partitioning a bit annoying, OpenBSD installs fast and we generally have minimal customizations. On the downside, you need to set up additional machines to be the new versions and there's some hassles at the downtime to change over.
(If we had significant state on our OpenBSD machines then this would be much harder.)
The other option is to use OpenBSD's sysupgrade(8) to upgrade an existing system in place. As OpenBSD says repeatedly, upgrades are only supported from one release to the release immediately following; if you need to jump several releases (perhaps because you let a machine sit), you'll need to go through the process repeatedly. Even with sysupgrade(8), you'll need to do some manual steps to fix up differences and adjust configuration files. OpenBSD covers these for their packages in their upgrade guides, such as the 6.8 to 6.9 upgrade guide. The most recent upgrade guide is always linked from The OpenBSD FAQ, and it links to the previous one and so on (plus, they have predictable URLs). In my limited experimentation, these version to version upgrades work, although I haven't attempted to see how different an upgraded machine is from a machine that was reinstalled from scratch.
Even if you're going to reinstall from scratch, I think it's worth reading the upgrade guide, because the upgrade guides often discuss important changes that you'll otherwise get to find the hard way. For example, the 6.8 to 6.9 guide discusses how PF is now stricter in port ranges and the syntax for routing options has changed.
(Since I looked into all of this and experimented with the sysupgrade method, I wanted to write it down before I forgot it.)