diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ff3a309..cf9d3c1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # 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 decided to work on this. This file is the other thing: how to get a first 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 ``` -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. Android is a containerised toolchain and is not needed for most work; see diff --git a/README.md b/README.md index df4fa04..37a7607 100644 --- a/README.md +++ b/README.md @@ -15,14 +15,15 @@ is still missing. **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 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 -time with a timeline beside it, and filtered by rating, flag, colour label, -person and whether the file is here. Ratings, colour labels, keywords, -collections and a trash that survives a crash mid-operation. Card ingest. -Bursts fold. The same RAW catalogued twice — a dated folder and a backup -beside it — is found, proved the same, and folded onto one copy with the -spares in the trash. Face detection and identity, with the index syncing -between devices. +Nextcloud account directly; a photograph that is only on the server opens on +its thumbnail with the download's progress over it. The grid is virtualised, +ordered by capture time with a timeline beside it, and filtered by rating, +flag, colour label, person and whether the file is here. Ratings, colour +labels, keywords, collections and a trash that survives a crash +mid-operation. Card ingest. Bursts fold. The same RAW catalogued twice — a +dated folder and a backup beside it — is found, proved the same, and folded +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 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 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 -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) @@ -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. **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 -into the library. +sharpening, a naming template and a colour space — into albums: named export +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 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 -**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); the rest are written down rather than merely absent. diff --git a/docs/README.md b/docs/README.md index ca93560..73a1cc4 100644 --- a/docs/README.md +++ b/docs/README.md @@ -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 | The [top-level README](../README.md) says what DarkRoom is, how to get it on diff --git a/packaging/flatpak/paris.tourolle.darkroom.yml b/packaging/flatpak/paris.tourolle.darkroom.yml index 1c9455b..a682732 100644 --- a/packaging/flatpak/paris.tourolle.darkroom.yml +++ b/packaging/flatpak/paris.tourolle.darkroom.yml @@ -117,7 +117,7 @@ modules: # from the state flatpak-builder is managing and not from whatever the # host's cargo cache happens to hold. 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 # flatpak-builder-tools' `flatpak-cargo-generator.py` from Cargo.lock, # listing every crate as its own source, plus a vendored-registry