Skip to content

Latest commit

 

History

History
58 lines (44 loc) · 2.04 KB

File metadata and controls

58 lines (44 loc) · 2.04 KB

Contributing to lr2resolve

Thanks for helping. This tool started as one photographer's Lightroom→Resolve migration and is deliberately small so it's easy to reason about and extend.

Architecture (the whole thing in 4 files)

lr2resolve/
  config.py     # valid Resolve values + default mappings (all overridable)
  extract.py    # calls exiftool (JSON), resolves sidecar-vs-embedded -> MediaRecord
  mapping.py    # pure functions: MediaRecord -> Resolve CSV rows (+ warnings)
  csvwriter.py  # writes proper comma-delimited UTF-8
  cli.py        # argparse front-end + stats

mapping.py is pure (no I/O) on purpose — it's the easiest place to contribute and is fully unit-tested.

Dev setup

git clone https://github.com/Paulo-Ink/lr2resolve
cd lr2resolve
pip install -e ".[dev]"
pytest -q

The test suite mocks exiftool, so it runs in CI without it installed.

Good first contributions

  • More label mappings / languages. Non-English Lightroom stores label text in the local language (e.g. Grün, Rouge). Add entries or ship example config JSONs under examples/.
  • More raw formats in DEFAULT_MEDIA_EXTENSIONS.
  • Reverse mode: read a Resolve metadata CSV export and write XMP sidecars (Resolve → Lightroom/Bridge).
  • Keyword hierarchy → Resolve keyword groups, if a sensible mapping exists.
  • A tiny GUI (drag a folder, get a CSV) for non-CLI users.
  • Version-matrix notes: confirm the import dialog wording/fields across Resolve 18 / 19 / 20 / 21 and the free vs Studio editions.

Ground rules

  • Keep mapping.py pure and covered by tests.
  • Don't reproduce Adobe or Blackmagic proprietary data in the repo.
  • Be honest in docs about what's novel vs. what already exists elsewhere.
  • New behaviour → a test. Bug fix → a regression test.

Reporting issues

Include: OS, Resolve version + edition, exiftool version, a redacted --stats output, and (if a mapping issue) the exact xmp:Label text from one file:

exiftool -G1 -a -s -XMP:Label -XMP:Rating /path/to/one.xmp