Version 1.0.0-beta.3 reporting for duty

Beta? What’s that?

Remember: beta builds should be considered experimental and may be unstable, although this one’s looking like it might be promoted to v1.0.0.

Read more about alpha, beta, and stable releases here.

Installation instructions

PhotoStructure for Desktop users

if you’re on an alpha or beta build already, just select “check for updates” and PhotoStructure should upgrade to -beta.3 automatically.

If not, download a new installer here:

PhotoStructure for Docker users

Change to image photostructure/server:beta. Know that UID and GID are now configurable, but -beta builds now default to running as root if the current system settings.toml exists and is owned by root.

PhotoStructure for Node users

Shut down PhotoStructure, then in the photostructure-for-servers directory, run git stash -u ; git checkout beta && ./

More installation details are here:

What’s in v1.0.0-beta.3?

  • :sparkles: PhotoStructure now imports invalidly-named JSON sidecars from Google Takeouts

  • :sparkles: PhotoStructure for Desktop’s splash screen now renders both the version and startup progress.

  • :sparkles: Date parsing now uses a customizable set of datetime formats. See the new extraDateTimeFormats setting for more information.

    If you have an old LG phone (like @Rodger), you might want to add MM.dd.yyyy HH:mm:ss to this setting (I didn’t/couldn’t add this to the default list, as the format ambiguously defines MDY and DMY, and ambiguous parsing leads to pain and suffering).

  • :bug: On initial library scan, a “library is empty” message would be rendered due to incorrect asset-count caching. This has been fixed.

  • :bug: Fixed the “update now…” menu item which could result in breaking the current installation.

  • :bug:/:package: Computers in “dark mode” could obscure parts of the PhotoStructure plus checkout page and the email with the verification code. We now explicitly set the background color to fix this issue.

  • :bug:/:package: Both environment and file settings can now use either PS_SHOUTY_SNAKE_CASE or camelCase names of settings, (like PS_LOG_LEVEL and logLevel) in an effort to make things “just work.” We recommend PS_SHOUTY_SNAKE_CASE for environment variables, though, just to avoid PhotoStructure settings from colliding with any other software.

  • :bug:/:package: The info tool now has a working --filter argument to filter output to only fields you’re interested in

  • :package: Logfiles now automatically rotate every day

  • :package: As part of PhotoStructure’s “health checks,” it verifies that a library volume can be written to. These “write tests” are called .tmp-XXXXX/write-test.jpg and live in your originals directory. In some cases these may be created but not successfully deleted. PhotoStructure now tries to clean up prior .tmp-* directories when performing health checks.

  • :package: PhotoStructure for Desktops now shuts down (rather than running in the background) if the main window is closed and a library hasn’t been set up yet.

  • :package: PhotoStructure for Desktops fills the screen on 1080p displays. On larger displays, it only takes 80% of the screen.

  • :package: Upgraded all dependencies, which included updates to sharp, electron, and knex

  • :package: PhotoStructure for Desktops is now being signed by an extended-verification code signing certificate from Sectigo. Prior releases were signed with a certificate from DigiCert. This should be a transparent change, but as with all software, should and is are different things.

See anything confusing, buggy, or broken?

Feel free to either open a new bug, reply to this topic, or chat on discord.

Upgrade to beta.3 was successful with no errors.

Is it possible to have PhotoStructure automatically launch after an upgrade? Or can we get some confirmation that the upgrade is completed, so we know when it’s safe to manually re-launch it?


Thanks for the update! PhotoStructure for Desktops on Windows is now signed with a new EV certificate, and, although it worked on my machine, it’s good to know it worked elsewhere.

It should in the next upgrade, but fingers crossed: installation and upgrades are always a bit of a muddle.

I updated the code in beta.3 to forceRunAfter (as per your request), but we’ll only know if that works properly after I release the next build (either v1.0.0-beta.4, or v1.0.0 proper