v0.10.0 (Oct, 2026)
Announcement:
This is a breaking release, incompatible with anything previous!!
New version is de-facto re-implementation.
This is the time to get the files from your real backup, which I hope
you have, because renaming files turns out to loose information and was considered harmful.
I apologize for problems.
Clone the project and set up the library once again!
Probably no more work with old file collections,
importing new photos is now recommended and old ones are best to be archived.
New version deliberately truncates original file names to 8 characters,
as they should be according to name length convention.
To copy all old images into new library, use standard upload with
patch: legacynames.patch to preserve date formatted names, which is
very recommended since truncating date formatted names will mix chronology
and worse, new hashsum is not surely secure to distinct then similar names.
cd ../phibrajry/+cmds
patch api.py < patches/legacynames.patch
python3 upload.py -r path/to/old
Major changes:
* Use hard links instead of symbolic
This cuts of lots of code, makes link bugs less risky and allows
cut/paste file to anywhere on the same disk easily.
* Mandatory separate images by camera name/id
This is an easy and very good practice.
It allows to predict the type of images, size, quality and quantity.
* All EXIF support was removed.
1) It barely has documentation, so libraries are mostly made of hacks
and may have poor future support.
2) exif date is anyway not guaranteed to be accurate.
It may be totally wrong if camera clock is not set and breaks on time zones.
3) It is wise to preserve out-of-camera file name for vendor ID and shutter count.
This also allows to potentially index any immutable/media files.
* Names will be truncated to 8 characters
This complies international format respected by all cameras.
Smartphone and user file names will be truncated unless applied a patch.
* Interactive mode was removed, as it is already easy to manage links with file manager.
It was huge enough to maintain I did not use it for months.
* rsync, chafa and piexif are no longer required dependencies
The only requirement is now python 3.11
* --dcim and --blind options removed
Call for upload will now always create copy of source directory,
which is considered safer as directory names may contain useful information.
Each call with different argument now always creates links regardless file duplication.
* All scripts now support -v --verbose and display used memory
* There is now ./+cmds/patches directory, including patch to enable raw support
* images are now stored under +images and links under +library
Prefix character is added for visual separation and alphabetic sort.
Checksums file +checksums.b2b expects paths relative to its location
and updated automatically after uploading images.
* not linked files are now linked to +trashcan
This is more standardized and well supported now to remove links,
their files will not get lost or linked in hidden directory.
Internal changes:
* all functions were split into api.py file
* introduced (simple) tests, code style and typing checks.
* shorter blake2 checksums + mention checksum in file name.
* use pathlib as safer wrapper for os.path
v0.9.6 (Sep, 2026)
Improve website build system a little more.
commit e6ce3f6724ddc44f34234f61ec054a6bec9da541
Add some tips and more accurate suggestions on backups.
commit eac7eeeb4ac3bda013865a780b5d8775c073a2ad
Markdowns for gitea/codeberg/?github hostings are now
auto-generated and anyway included in tree.
This is motivated by inconsistent and incompatible with *.txt
markdown formatting, which is unfortunately displayed on project main page.
commit f506098fdc2bd109a80e7570b7a809c54b8339f9
v0.9.5 (Aug, 2026)
Internal changes.
Website deployment made a little less cumbersome
and its build directory is now part of main tree.
v0.9.4 (Aug, 2026)
Website main page is refreshed;
Source code is now available on both codeberg and gitea.
v0.9.3 (Feb, 2026)
Announcement:
maintenance section is now added to the project and website.
Primary website is now phibrajry.grebedoc.dev
Mastodon newsletter is now available: phibrajry@techtoots.com