Release: promote dev to main (initial camera-roll-tools release) #2

Merged
hannah-vernon merged 2 commits from dev into main 2026-07-08 16:56:37 -05:00

What does this PR do?

Promotes the current dev branch to main as the initial release of camera-roll-tools.

Includes:

  • Move-PhotosByDate.ps1 - moves date-named files (yyyyMMdd-HHmmss.*) into Year\yyyy-MM-dd subfolders, with:
    • -Extension extension filtering (default: common image types)
    • -IncludeVideo to also process common video extensions
    • -ExifFallback to resolve dates from EXIF DateTimeOriginal (photos) or the Windows Shell "Media created" property (videos) when the filename has no valid date
    • -Recurse, -WhatIf, and -Confirm support
  • Repository scaffold: README, agent-readme, MIT LICENSE, THIRD-PARTY-NOTICES, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, and issue/PR templates.

How was this tested?

  • Script parses cleanly (0 errors)
  • Manually tested filename-date bucketing, extension filtering, -IncludeVideo, and the EXIF fallback path on throwaway temp folders

Checklist

  • Changes are focused - release of reviewed, merged dev work
  • Documentation is in sync (README, agent-readme)
  • No new third-party dependencies (uses built-in System.Drawing and the Shell.Application COM object)
  • No commented-out code or debug leftovers
## What does this PR do? Promotes the current `dev` branch to `main` as the initial release of `camera-roll-tools`. Includes: - `Move-PhotosByDate.ps1` - moves date-named files (`yyyyMMdd-HHmmss.*`) into `Year\yyyy-MM-dd` subfolders, with: - `-Extension` extension filtering (default: common image types) - `-IncludeVideo` to also process common video extensions - `-ExifFallback` to resolve dates from EXIF `DateTimeOriginal` (photos) or the Windows Shell "Media created" property (videos) when the filename has no valid date - `-Recurse`, `-WhatIf`, and `-Confirm` support - Repository scaffold: README, agent-readme, MIT LICENSE, THIRD-PARTY-NOTICES, CONTRIBUTING, CODE_OF_CONDUCT, SECURITY, and issue/PR templates. ## How was this tested? - [x] Script parses cleanly (0 errors) - [x] Manually tested filename-date bucketing, extension filtering, `-IncludeVideo`, and the EXIF fallback path on throwaway temp folders ## Checklist - [x] Changes are focused - release of reviewed, merged `dev` work - [x] Documentation is in sync (README, agent-readme) - [x] No new third-party dependencies (uses built-in System.Drawing and the Shell.Application COM object) - [x] No commented-out code or debug leftovers
Add -Extension (defaulting to common image types), -IncludeVideo, and -ExifFallback
parameters. Files are now limited to a configurable extension set. When a filename
lacks a valid yyyyMMdd date and -ExifFallback is supplied, the capture date is read
from EXIF DateTimeOriginal (via System.Drawing) for photos, falling back to the
Windows Shell property system (Date taken / Media created) for portability and video
support. The filename date still takes precedence. The summary object now reports
ResolvedByExif and Excluded counts. README and agent-readme updated accordingly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reviewed-on: #1
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
hannah-vernon/camera-roll-tools!2
No description provided.