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:
-
you have frequent, automatic backups of your data, and
-
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:
alpha
→ beta
→ stable
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.
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
.
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
.
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.
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.