Please note that this version will require revisiting the files in your library to recompute ExifUIDs and re-encode preview images as progressive JPEGs. This will happen automatically after you upgrade PhotoStructure.
maxPreviewResolution library setting with previewResolutions.
See the description of the setting for more details.progressive library
setting, which defaults to true).dbCacheSizeMb system setting now defaults to 128 MB, which
should handle large (quarter-million asset) libraries. If you have a larger
library, double this value, and be sure to email us if you see anything else
not run quickly.r
(or the rotate icon in the header) to rotate counter-clockwise 90 degrees. Hit
r or click the rotation icon multiple times in a row to rotate more than 90
degrees. Saving happens in the background, and is non-destructive.writeMetadataToSidecars library setting controls how the rotation
metadata is persisted. The default is to save a new sidecar, or update an
existing sidecar, with the new orientation.en_US)showItemInFolder now runs directly from the webserver.showItemInFolder on Ubuntu could fail if there were network filesystems
in a bad state. We ignore those errors now, so the Nautilus window can stay
shown.**/tmp/** to the directory exclusion filters. Previously only
/tmp and /var/tmp root directories had been excluded.**/com.apple.TimeMachine.localsnapshots directoriesabout window now supports copying system metadata to the clipboard,
or emailing to support via a mailto:.Send recent logs from the system tray sends all currently-running process
logs to Sentry./nix/store/... directories. or , field separators
(like Pictures/2019.03.14/image.jpg)updateOnLaunch system setting.LANG to C is supported (and considered a synonym for
en).Please note that this version will require a sync to revisit the files in your library. This will happen automatically.
β¨ Sync runs periodically now. After sync completes importing all
available volumes, it waits for syncIntervalHours (configurable as a library
setting), and restarts the sync process. This defaults to 24 hours, to balance
picking up new files automatically and trying to avoid unnecessary wear and
tear on your storage media.
β¨ Files are processed concurrently now, depending on the number of CPUs your computer has. This may dramatically speed up sync.
β¨ Syncs of previously-imported volumes should complete faster now,
because files are only checked for changes every fileSyncIntervalHours
(configurable as a library setting). This defaults to every week, again, to
try to balance PhotoStructure being in sync with your storage media, and wear
and tear on your disks.
β¨ NAS support for library storage: Library lockfiles prevents NAS-stored libraries from being corrupted by multiple simultaneous writers (or multiple instances of PhotoStructure on one machine from fighting). If the lockfile is lost (if, for example, you unplug the NAS or the external drive that your library is on), PhotoStructure will shuts down automatically.
β¨ Multiple file asset support: When there are multiple files representing a given asset, and the most-recent file is not available, next-most-recent candidates are now considered for preview generation and tagging purposes.
β¨ Keyword support: Assets are tagged with keywords. Keywords are found in
the Keyword IPTC tag and XPKeyword EXIF tag. Sidecars keywords are
included as well.
β¨ Support for SD cards and smartphones: In previous versions of
PhotoStructure, local volumes that weren't available to df, or that didn't
have UUIDs could causeβ¦ issues. OK, fine, they were π. Unfortunately,
smartphones, SD cards, and several other types of media don't reliably have
UUIDs, so if PhotoStructure failed to launch (especially on Windows), this
version may fix that for you.
β¨ The ExifUID version was updated to support more original/edited pairs (as
many photo editing apps will delete timezone offset metadata). Whenever a new
ExifUID version is released, your next sync will need to visit all your assets
again. This should complete much faster than an initial sync.
π¦ scanPaths are scanned first, followed by libraryPath, followed by
mounted volumes (if scanAllDrives is selected).
π¦ logDir is now a system setting (prep for PhotoStructure for Servers)
π¦ on Windows, PowerShell is used rather than attrib to detect if a file
is hidden. This turns out to be up to 10x faster, and as we do this for every
folder, it can speed syncs up substantially.
π¦ Validation of raw images takes between 3 and 30 seconds per file. The
library setting validateRawImages allows this to be skipped if you don't
care to check raw images during library import.
π Recompiled sqlite on macOS as a 64-bit binary, which removes the
"PhotoStructure is not optimized for your Mac and needs to be updated"
dialog. See #154.
π When web encounters a show-stopper issue (like when the library hard
drive gets unmounted unexpectedly), it can now tell the main process to shut
PhotoStructure down (rather than just restarting endlessly).
π On large tag gallery pages, lazy loading would sometimes load batches out of order or more than once. Now, they don't duplicate themselves! And they maintain order! That was an ugly bug, sorry about that. See #121.
β¨ Open item in folder: When browsing on the computer that is running PhotoStructure, you may now click the photo or video icon by a pathname in the asset info view, and the parent directory will be opened in the file explorer, with the current file selected. This lets you subsequently edit the file in other external apps.
β¨ WVGA was added as a smaller maxPreviewResolution for users only serving
low resolution browsers.
π Settings were rewritten unneccessarily due to a version parsing bug.
π If the library directory goes away while PhotoStructure is running (for
example, when the volume is unmounted or the NAS is shut down), the main
process will shut down. Before this version, PhotoStructure's main process
would try to restart the web process indefinitely.
π Error reporting throttles across processes and services now. Note that error reporting can be disabled in the system settings.
β¨ All asset file originals are now directly downloadable via the asset info panel
β¨ Metadata sidecar support:
.XMP, .EXIF, .EXV, and .MIE file types are supported
If a sidecar is found, the metadata in the sidecar overlays the metadata in the source file.
Sidecars are copied to your library along with your original files (if automatic library organization is enabled)
β¨ During installation, you can now choose "scan everything", "scan my pictures directory", or "scan this custom folder."
π¦ Updates are only checked for once a day (rather than on every launch, and N minutes afterwards).
π¦ Upgraded to Electron 5/node 12, which added Dirent support. Large
directories will be scanned much faster thanks to this.
π Changing settings now gracefully restarts sync processes.
β¨ Some smartphone RAW images have slightly different exposure settings than their JPG counterpart. PhotoStructure now handles these "features" properly, and will merge the image pairs.
π Only support VLC v3.0.x, as v2.x doesn't support our transcoding
options, and v4.0.0-dev has bugs with window handling on Windows.
π PowerShell parsing is now more robust. Some Windows beta testers had failed health checks due to missing filesystem volumes.
π Large image directories with missing metadata confused the tag inference engine. Tag inference now only looks at the nearest N siblings.
π Some people found that update notification dialogs could be hidden on Windows. Once an update has been downloaded and is ready to apply, the system tray now also provides a way to update and restart.
π¦ Several more "ignorable" directory patterns were added, including "smart previews."
π¦ psnet URIs have case-normalized hostnames
π¦ DB SHAs were reduced from 224 to 192 bits to reduce index memory consumption
π₯ Welcome, second wave of beta users! β¨
π "Only examine my Pictures folder" works (again). See #118.
π¦ All subdirectories in an iPhoto library are skipped except for Masters. See #119.
π Stream UX avoids video controls. See #57.
assetSubdirectoryDatestampFormat setting.maxMemoryMb setting, which defaults to 1 GB. See
#115.ceil sync-file processes, which should allow for more
CPU saturation during sync.statTimeoutSeconds setting.maxCpuPercent setting is a "CPU utilization goal" that
PhotoStructure will attempt to not exceed.error, so logfiles don't bother people:
#74sendFile now, which sets etags correctly and
handles chunked encoding. This should fix
#36settings.toml files. PhotoStructure straightens out quotes for
you.maxProcs ignored values greater than 1.wmic to using
long-lived, batch-cluster-managed PowerShell.setting. Video streaming in the UI now autoplays instantly.
π Users must manually install VLC. See https://support.photostructure.com/vlc-installation/
π On launch, if the prior library is not available, ask the user what to do (quit, reset, try again). Previously launching would just quietly exit, which was less than helpful.
π Support library settings POST after library path is set
β¨ Errors from child processes are now propagated to the desktop app for display to the user.
β¨ New system setting to allow users to opt out of error reporting (see reportErrors).
β¨ New system settings control sync behavior (see startPaused and volumeResyncPeriodHours)
β¨ New library settings to control file validation (see validateImages and
validateVideos). Validation slows synchronization, and video validation is
especially expensive. Given that videos can still play even with bitrot, the
default for videos is to do minimal validation (intact metadata and the
ability to extract a frame from the beginning of the video).
β¨ New library settings to control which images and videos are eligible for
library import (see minImageDimension, minVideoDimension,
minFileSizeBytes, and maxFileSizeBytes). For min dimension settings,
Images and videos must have both dimensions be greater than or equal to these
values. They default to 480 for images and 240 for videos.
β¨ New library settings to control what previews are created (see
maxPreviewResolution).
β¨ New system settings to manage when PhotoStructure checks for upgrades (see
updateOnLaunch and updateCheckMinutes, which work in concert with
updateChannel).
β¨ New system settings to manage how many CPUs PhotoStructure is allowed to
use (see maxCpus).
β¨ PhotoStructure work scheduling was restructured, which should result in faster Asset processing, and should fix "stuck" synchronization.
π Reverted back to Electron 3, as the system tray under linux was broken in Electron 4.
π Fixed nslookup error in remote mountpoint name resolutions
β¨ Support for persisted system and library settings. Any external edits must be done while PhotoStructure is shut down.
System settings paths:
Linux: ~/.config/PhotoStructure/settings.toml
Mac: ~/Library/Application Support/PhotoStructure/settings.toml
Windows: %USERPROFILE%\AppData\Roaming\PhotoStructure\settings.toml
Library settings path: $YOUR_LIBRARY/.photostructure/settings.toml
Settings are saved in TOML, which both supports comments, and was designed for humans to both read and write.
PhotoStructure's updater now supports release channels (latest, or beta)
via your system settings.
A number of other system settings are exposed as well, including resolution of #53.
diskutil, gio, or findmnt --poll
(whatever is available), which gives us real-time mountpoint updates on Mac
and Linux. This should resolve the error where mountpoints can temporarily
disappear (according to df), which cancels synchronization on larger
volumes.df information is shared across PhotoStructure processes, which should lower
system resource loadReleased 2018-12-08
Released 2018-12-07
Performance improvements:
Bug fixes:
Released 2018-09-07
Released 2018-09-05
psvol, psnet, and pslib URI protocols now handle root directoriesReleased 2018-08-27
sync-file to reduce memory
footprint