WiX v4 directories, components, files and media #25

Closed
opened 2026-10-14 11:54:04 -05:00 by jeff · 1 comment
Owner

Part of #23

What to build

The v4 way to put files on disk: StandardDirectory (with the 6432 directories following the package's bitness), Directory with or without an Id, Subdirectory on directories, components and component groups, Component with Bitness, Condition, Feature, and default Id and Guid, File with a default Id, and Media or MediaTemplate, including a package with neither.

Acceptance criteria

  • Each element and attribute above, with the defaults the WiX schema reference gives and the inferences ADR-0007 records.
  • MediaTemplate assigns files to cab1.cab, cab2.cab and so on by MaximumUncompressedMediaSize, embedded or not.
  • Generated directory and file Ids are stable, and the same Subdirectory from the same parent is one directory.
  • v4 fixtures with files, compressed and uncompressed media, 32-bit components in 64-bit packages, and conditions, each with a twin, pass end to end.

Blocked by

Part of #23 ## What to build The v4 way to put files on disk: `StandardDirectory` (with the `6432` directories following the package's bitness), `Directory` with or without an `Id`, `Subdirectory` on directories, components and component groups, `Component` with `Bitness`, `Condition`, `Feature`, and default `Id` and `Guid`, `File` with a default `Id`, and `Media` or `MediaTemplate`, including a package with neither. ## Acceptance criteria - [ ] Each element and attribute above, with the defaults the WiX schema reference gives and the inferences ADR-0007 records. - [ ] `MediaTemplate` assigns files to `cab1.cab`, `cab2.cab` and so on by `MaximumUncompressedMediaSize`, embedded or not. - [ ] Generated directory and file Ids are stable, and the same `Subdirectory` from the same parent is one directory. - [ ] v4 fixtures with files, compressed and uncompressed media, 32-bit components in 64-bit packages, and conditions, each with a twin, pass end to end. ## Blocked by - #24
Author
Owner

Done in e34d153, green in CI run 22.

  • <StandardDirectory> is supported. TARGETDIR and the standard directories in use are supplied, and only when something needs them. The 6432 folders resolve by architecture before component GUIDs are derived.
  • A Directory or File with no Id, and every Subdirectory, gets a stable generated Id. The same Subdirectory names one directory.
  • Component takes Bitness, Condition, Feature and Subdirectory. Its Id defaults to its key path's, and its GUID is generated.
  • Media compresses at medium by default. MediaTemplate, or its documented defaults when there is no media at all, lays files out by size.
  • files4, compressed4 and media4 pass against their twins and install under Wine.
Done in e34d153, green in CI run 22. - `<StandardDirectory>` is supported. TARGETDIR and the standard directories in use are supplied, and only when something needs them. The 6432 folders resolve by architecture before component GUIDs are derived. - A `Directory` or `File` with no Id, and every `Subdirectory`, gets a stable generated Id. The same Subdirectory names one directory. - `Component` takes Bitness, Condition, Feature and Subdirectory. Its Id defaults to its key path's, and its GUID is generated. - `Media` compresses at medium by default. `MediaTemplate`, or its documented defaults when there is no media at all, lays files out by size. - files4, compressed4 and media4 pass against their twins and install under Wine.
jeff closed this issue 2026-10-14 13:11:59 -05:00
Sign in to join this conversation.
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.

Reference
jeff/zixl#25
No description provided.