Alpha, beta, stable, and latest; What should you use?

Here’s a question I got today over email:

I’m having a hard time figuring out which version I should be using. I’m currently running PhotoStructure as a docker container. I am using the “beta” tag in the docker compose file. Is that correct?

TL;DR: Please do not run alpha or beta builds unless:

  1. you have frequent, automatic backups of your data, and

  2. you’re willing to report bugs that you see to either discord or this forum.

If you’re unsure, please use stable

PhotoStructure’s release pipeline

It’s no fun to run buggy software! Unfortunately, every time software is changed (either to add features or to fix bugs), those changes may introduce new, unexpected defects.

We try to shield these defects from most of our users by refining each release via a release “pipeline” that has 3 phases:

alphabetastable

Note that some stable releases may skip either alpha and/or beta builds.

Upgrades are easy. Downgrades, not so much.

Know that switching to an alpha or beta build can be a “one-way trip” for a library. You can always rebuild your library from scratch, but that can take a while and be inconvenient.

And I Oop Marty Mcfly GIF by Back to the Future Trilogy

Detailed instructions about rolling back to prior versions is here:

TL;DR: Many users “kick the tires” with a test library with a few hundred photos or videos, rather than upgrading their full library (especially with alpha builds), specifically to avoid “full rebuild” events.

What’s an alpha build?

Alpha versions have the word “alpha” in them: like v1.2.0-alpha.2.

Im Ready Doc Brown GIF by Back to the Future Trilogy

An alpha build should be considered extremely experimental, and may not even launch on all platforms.

New versions that have substantial changes (either from new code or from upgrading dependencies) may have alpha builds that precede beta or stable builds.

Announcements with installation instructions and release notes are made to this forum and to discord.

Although PhotoStructure has a robust set of over 5,000 tests that automatically run on all supported platforms, these tests don’t (and can’t!) cover everything. Manual testing in a bunch of different environments and system configurations is critical to help discover defects.

Once an alpha build seems to work for our test machines and several users on different platforms, we progress to beta builds.

What’s a beta build?

Beta versions have the word “beta” in them: like v1.2.0-beta.3.

Doc Brown Shock GIF by Back to the Future Trilogy

A beta build should run, but may be unstable.

We expect that most users can use the product, but there may be show-stopping bugs with some system configurations.

Announcements with installation instructions and release notes for these builds are made to this forum, discord, to the /r/PhotoStructure subreddit, and @PhotoStructure on Twitter.

As new beta builds are released, they are also tagged with alpha, to make sure alpha testers are seeing the latest and greatest build.

When the latest beta build seems to be stable and show-stopping bugs have been addressed, we “release” the final build for that version and tag it with stable. We also push this stable build to alpha and beta, to make sure everyone is running the latest stable version.

stable build

A stable build is recommended for most users. When defects are found, we’ll try to fix them in the next build.

Doc Brown Fly GIF by Back to the Future Trilogy

Announcements with installation instructions and release notes for new versions are made to the email subscription, here in the forum, to the /r/PhotoStructure subreddit, and @PhotoStructure on Twitter.

So: to finally get back to the question:

I am using the “beta” tag in the docker compose file. Is that correct?

No. Most people should use the stable tag.

beta builds should be considered unstable.

If you’re floating on beta, and a new beta.1 is released, your system may automatically upgrade. If there are issues with that build, you may find your library is not available when you expect it to be.