Beta? What’s that?
Remember: beta
builds should be considered experimental and may be unstable.
Read more about alpha, beta, and stable releases here.
Installation instructions
PhotoStructure for Desktop users
if you’re on the alpha build already, just select “check for updates” and PhotoStructure should upgrade to -beta.1 automatically.
If not, download a new installer here: PhotoStructure | Install PhotoStructure
PhotoStructure for Docker users
Change to image photostructure/server:beta
. Know that UID and GID are now configurable, but -beta.1 now defaults to running as root if the current system settings.toml exists and is owned by root.
PhotoStructure for Node users
Shut down PhotoStructure, then run git stash -u ; git checkout beta && ./start.sh
More installation details are here:
Now: what’s new in -beta.1, you ask? Well…
Continuous integration is back!
This release has a bunch of behind-the-scenes improvements–the biggest for me, personally, is switching from GitLab CI to GitHub Actions for continuous integration.
PhotoStructure has a ton of unit, integration, and system tests: over 1,000 front-end tests, more than 4,500 “core” tests, and more than 1,000 “library” tests–including a “test import” and “test rebuild” run on a 1GB set of “exemplar” photos and videos.
These tests all run on all OSes automatically, but for most of the alpha builds, CI has been broken due to node/npm/yarn/gyp/gitlab-runner incompatibilities:
Each of those failed jobs were due to the gitlab-runner wedging in ways that I couldn’t reproduce locally.
I switched to GitHub Actions for CI, and after playing bug and test whack-a-mole for the past couple days, this morning I was finally was greeted with this:
TL;DR: GREEN IS GOOD, RED IS BAD. CI IS GREEN NOW.
What visible changes are in 1.0.0-beta.1?
A ton, actually!
-
Added a first pass at tag normalization: the “Album”, “Keyword” and “Who” tags now all support “aliases”, controlled by the new
rootTagAlbumsAliases
,rootTagKeywordsAliases
, androotTagWhoAliases
settings. This helps normalize tags in existing files, say, if your keywords aren’t (all) in English, or have inconsistencies (“Keyword/Sky” and “Keywords/Sky”). -
Dropdown menu improvements
- Dropdown menus are now positioned to ensure the content is visible. If possible, they show to the right and below the click target, but will render to the left or even above the click target if the right or bottom screen edge is close.
- Dropdown menus now have a close button.
- Dropdown menus can now be dismissed by clicking or tapping anywhere else on the screen, and these taps and clicks that dismiss a menu are ignored.
- Dropdown menu contents can scroll vertically if their content is too tall for the screen.
-
/ Improved UID/GID handling for those upgrading PhotoStructure for Docker from v0.9.
Prior to v1.0, PhotoStructure for Docker defaulted to running as root. To prevent upgrades from failing due to permission issues, we now default the userid to match the current owner of
/ps/config/settings.toml
.This default value will be overridden if
UID
,GID
,PUID
, orPGID
are set, which is recommended to minimize both the number of files owned by root, and the number of processes running as root (even within containers).If the file is missing, we default to
1000
for both the UID and GID, which
is the default for the first non-system user (at least in Ubuntu and Fedora). -
Fixed PhotoStructure for Desktops packaging:
alpha.7
was erroneously omitting required third-party.so
/.dll
s. -
Name parsing for family names that end in “i” is now fixed.
-
The
when:
anddate:
search query filters are now synonyms, and normalize todate:
(details). -
/ Tag paths are normalized to “NFC” Unicode Normalization Form now. This should help library portability between macOS and other platforms.
-
Asset streams are now always scrolled into view on navigation (this was broken in alpha.7)
-
Navigating from the welcome page to the plans page could take a while if the user had many slow drives. An aggressive timeout (3 seconds) was added to prevent the page from hanging.
-
/ The “shown” asset file variant in the asset info panel is easier to select now (the prior click target was only the pathname)
-
/ Searching for
before:2022
now works (if you want a query that returns all assets in your library). Previous versions applied the “captured at” validity filter to dates, which reject dates more than several weeks in the future. -
The
View
menubar items were re-ordered -
Environment and TOML settings now support “aliases.” This allows us to change or improve the names of settings between versions but not break existing configurations. These aliases are listed per setting in the library and system
settings.toml
files now. -
settings.toml
anddefaults.env
now enumerate all environment and TOML key aliases (so prior setting names can be found). -
/ Clicking “continue” from
/welcome
now has an aggressive timeout to prevent hangups during the initial installation flow. If you have tons of slow external disks attached to your computer, this should help. -
Subscription signups could fail sometimes when the Stripe API reported that newly-created customers didn’t exist. We retry these requests automatically now to work around this issue.
-
The
info
tool now supports filtering output, including deep fields. Seeinfo --help
for more information. -
PhotoStructure for Node’s
start.sh
script now- verifies that Node.js is at least v14.16.0
-
warns if
ffmpeg
isn’t available - warns Ubuntu 18 users that HEIF isn’t supported
-
Ubuntu 18 fixes:
-
lsblk
parsing supports older versions (that don’t support volume size information) -
rebuilt binaries on 18.04 (prior alpha builds had binaries built on Ubuntu 20.04)
-
What’s next?
This is a release-candidate build for version 1.0.0. In other words, if there aren’t any showstoppers found in this build after a couple days, this will become version 1.0.0.