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: Most users should use
stable: don’t use
beta unless you know what you’re doing. Continue reading to know what
beta actually entails.
First off: apologies that this is confusing!
I’ve used the term “beta” to mean two very different things:
- PhotoStructure, as a “beta product”, as well as
- A "
The “beta product” meaning will be going away soon, as the current (v0.9.1) version of PhotoStructure is the last “beta product” release.
In the near future, if “beta” is mentioned, it will only refer to a "
beta build," which is a stage of PhotoStructure’s release pipeline.
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 minimize these defects by refining each release via a release “pipeline” that has 3 phases:
beta builds are used to verify bug fixes and minimize new defects. There may be several of each.
Do not run an
betabuild if you do not have frequent, automatic backups of your data.
If bugs really bother you, or you don’t have time to report defects that you encounter via this forum, you probably should wait for stable releases.
alpha build should be considered extremely experimental, and may not even launch on all platforms.
After all features for a given version are implemented, an
alpha.1 build is released.
Announcements with installation instructions and release notes are made to this forum.
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 is critical to help discover defects.
Once an alpha build seems to work for several users on different platforms, we progress to beta builds.
beta builds still should be considered unstable: but for several users, the product launches, sync runs, and the UI is functional.
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 actually release the final build for that version and tag it with
stable. We also push this stable build to
beta, to make sure everyone is running the latest stable version.
stable build is recommended for most users, and should be relatively bug free. If defects are found, we’ll try to fix them in the next stable release.
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
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.