Bring the README, the docs index and CONTRIBUTING up to 0.17.0

The README said export went "to a folder here or back into the
library", which albums replaced and forbid, and called presets "named
presets" beside a shipped collection of film looks and Lightroom
imports. It now says both, and that a photograph only on the server
opens on its thumbnail with its download's progress. The requirement
count comes from traceability.md's summary: 192, 84% claimed; the
version and release count are left to the release commit.

docs/README.md's manual row gains presets and albums. CONTRIBUTING
said 177 requirements and 826 crates, and the Flatpak manifest 826
crates; the lockfile now holds 849 packages, 822 from the registry.
This commit is contained in:
2026-09-26 14:56:12 -04:00
parent 2f5f2041ab
commit f39b88b005
4 changed files with 22 additions and 16 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
# Contributing to DarkRoom # Contributing to DarkRoom
There is a lot of documentation here — 14 documents and 177 numbered There is a lot of documentation here — twenty-odd documents and 192 numbered
requirements — and almost all of it is written for someone who has already requirements — and almost all of it is written for someone who has already
decided to work on this. This file is the other thing: how to get a first decided to work on this. This file is the other thing: how to get a first
change landed without reading any of it. change landed without reading any of it.
@@ -62,7 +62,7 @@ sudo apt-get install pkg-config libfontconfig1-dev libxkbcommon-dev
cargo run -p darkroom-desktop cargo run -p darkroom-desktop
``` ```
The first build resolves 826 crates and takes a while — on a laptop, long The first build resolves some 850 crates and takes a while — on a laptop, long
enough to look like a hang. It is not one. enough to look like a hang. It is not one.
Android is a containerised toolchain and is not needed for most work; see Android is a containerised toolchain and is not needed for most work; see
+18 -12
View File
@@ -15,14 +15,15 @@ is still missing.
**A library.** Point it at a folder — on this machine, on a network mount, **A library.** Point it at a folder — on this machine, on a network mount,
or one a Nextcloud client keeps in virtual-files mode, where a placeholder or one a Nextcloud client keeps in virtual-files mode, where a placeholder
is treated as the photograph rather than as a one-byte file — or at a is treated as the photograph rather than as a one-byte file — or at a
Nextcloud account directly. The grid is virtualised, ordered by capture Nextcloud account directly; a photograph that is only on the server opens on
time with a timeline beside it, and filtered by rating, flag, colour label, its thumbnail with the download's progress over it. The grid is virtualised,
person and whether the file is here. Ratings, colour labels, keywords, ordered by capture time with a timeline beside it, and filtered by rating,
collections and a trash that survives a crash mid-operation. Card ingest. flag, colour label, person and whether the file is here. Ratings, colour
Bursts fold. The same RAW catalogued twice — a dated folder and a backup labels, keywords, collections and a trash that survives a crash
beside it — is found, proved the same, and folded onto one copy with the mid-operation. Card ingest. Bursts fold. The same RAW catalogued twice — a
spares in the trash. Face detection and identity, with the index syncing dated folder and a backup beside it — is found, proved the same, and folded
between devices. onto one copy with the spares in the trash. Face detection and identity,
with the index syncing between devices.
**Developing.** Eighteen declared operations fused into one compute **Developing.** Eighteen declared operations fused into one compute
dispatch, plus the neighbourhood work that cannot be: clarity, texture, dispatch, plus the neighbourhood work that cannot be: clarity, texture,
@@ -31,7 +32,10 @@ simulation. Crop, straighten and correct converging verticals, spot repair,
and local adjustments over masks the model draws — click a subject or a and local adjustments over masks the model draws — click a subject or a
category, then paint, subtract a gradient or keep only where two selections category, then paint, subtract a gradient or keep only where two selections
agree, grow or shrink the edge. Focus peaking and a raw histogram for judging agree, grow or shrink the edge. Focus peaking and a raw histogram for judging
what is recoverable. Named presets; XMP sidecars other editors read. what is recoverable. Presets, with a collection shipped in the application —
everyday corrections, and a look for each measured colour, cinema and
black-and-white stock — and Lightroom presets imported as looks that leave a
photograph's own corrections alone. XMP sidecars other editors read.
[![Segmenting an urban scene and choosing the sky as a mask](docs/manual/media/local-segment.png)](docs/manual/README.md#local-adjustments) [![Segmenting an urban scene and choosing the sky as a mask](docs/manual/media/local-segment.png)](docs/manual/README.md#local-adjustments)
@@ -49,8 +53,10 @@ binds it, and links them to the sections of the manual that show them — the
manual ships with the application and opens offline. manual ships with the application and opens offline.
**Export.** JPEG, PNG, AVIF, JPEG XL, 8- and 16-bit TIFF, with resize, output **Export.** JPEG, PNG, AVIF, JPEG XL, 8- and 16-bit TIFF, with resize, output
sharpening, a naming template and a colour space — to a folder here or back sharpening, a naming template and a colour space — into albums: named export
into the library. folders on this machine or on the server, never inside the library, which
remember the photograph behind each file and sync between devices as
collections do.
**On both platforms.** The same core runs on a desktop and a 12-inch **On both platforms.** The same core runs on a desktop and a 12-inch
tablet; the interface is one layout, tuned for a wide viewport with touch tablet; the interface is one layout, tuned for a wide viewport with touch
@@ -87,7 +93,7 @@ controls, its place in the chain and its tests.
## Where it stands ## Where it stands
**0.16.0**, twenty-four tagged releases in. 191 numbered requirements in **0.16.0**, twenty-four tagged releases in. 192 numbered requirements in
scope, 84% of them claimed by code and [traced to it](docs/dev/traceability.md); scope, 84% of them claimed by code and [traced to it](docs/dev/traceability.md);
the rest are written down rather than merely absent. the rest are written down rather than merely absent.
+1 -1
View File
@@ -7,7 +7,7 @@ second.
| | | | | |
|---|---| |---|---|
| [The manual](manual/README.md) | Every feature, pictured from the application itself — opening a library, rating, labelling and filing, duplicate originals, developing, local masks, repair, film, panoramas, export. The application carries it and opens it from Help and from Settings | | [The manual](manual/README.md) | Every feature, pictured from the application itself — opening a library, rating, labelling and filing, duplicate originals, developing, local masks, repair, film, presets, panoramas, export and albums. The application carries it and opens it from Help and from Settings |
| [How it is driven](gestures.md) | Every gesture and shortcut, by screen. Generated from the code, so it cannot describe one the application does not have. The same list is the in-app help sheet: `Help` or `F1` in the grid, `?` or `F1` in develop | | [How it is driven](gestures.md) | Every gesture and shortcut, by screen. Generated from the code, so it cannot describe one the application does not have. The same list is the in-app help sheet: `Help` or `F1` in the grid, `?` or `F1` in develop |
The [top-level README](../README.md) says what DarkRoom is, how to get it on The [top-level README](../README.md) says what DarkRoom is, how to get it on
@@ -117,7 +117,7 @@ modules:
# from the state flatpak-builder is managing and not from whatever the # from the state flatpak-builder is managing and not from whatever the
# host's cargo cache happens to hold. # host's cargo cache happens to hold.
CARGO_HOME: /run/build/darkroom/cargo CARGO_HOME: /run/build/darkroom/cargo
# Cargo fetches 826 crates, and Flathub's builders forbid this — a # Cargo fetches over 800 crates, and Flathub's builders forbid this — a
# submission there needs `cargo-sources.json` generated by # submission there needs `cargo-sources.json` generated by
# flatpak-builder-tools' `flatpak-cargo-generator.py` from Cargo.lock, # flatpak-builder-tools' `flatpak-cargo-generator.py` from Cargo.lock,
# listing every crate as its own source, plus a vendored-registry # listing every crate as its own source, plus a vendored-registry