Description
swift build can fail from a clean clone because Package.swift still references several local path dependencies that are not present after cloning the repo (for example under packages/... and/or similar local-only directories).
In the earlier reproduction on a fresh macdoc clone, build/setup work ran into missing local package paths and had to be patched around manually. The underlying issue is that the package graph is not fully reproducible from a clean environment.
Why this is a problem
This breaks clean install/build reproducibility:
- a fresh clone cannot reliably build without extra local package directories being prepared first
- contributors / CI / new machines may fail immediately
- the repo implicitly depends on local filesystem state that is not captured in Git
Suggestion
Please consider replacing missing local path-based dependencies with remote package references (url:) wherever possible, including the private/internal packages that are expected to come from GitHub rather than local checkout paths.
Examples of the intended direction:
doc-converter-swift
word-to-md-swift
ooxml-swift
markdown-swift
marker-swift
pdf-to-latex-swift
apabib-* packages
If some packages must remain private, they should still be referenced as remote Git dependencies instead of untracked local directories.
Steps to reproduce
git clone https://github.com/PsychQuant/macdoc.git
cd macdoc
swift build -c release
Expected behavior
A clean clone should build successfully without requiring manual creation/cloning of extra local package directories.
Current Status
Phase: closed
Last updated: 2026-04-21 by idd-close (batch-close)
Key Decisions
Scope Changes
Blocking
Commits
Description
swift buildcan fail from a clean clone becausePackage.swiftstill references several local path dependencies that are not present after cloning the repo (for example underpackages/...and/or similar local-only directories).In the earlier reproduction on a fresh
macdocclone, build/setup work ran into missing local package paths and had to be patched around manually. The underlying issue is that the package graph is not fully reproducible from a clean environment.Why this is a problem
This breaks clean install/build reproducibility:
Suggestion
Please consider replacing missing local path-based dependencies with remote package references (
url:) wherever possible, including the private/internal packages that are expected to come from GitHub rather than local checkout paths.Examples of the intended direction:
doc-converter-swiftword-to-md-swiftooxml-swiftmarkdown-swiftmarker-swiftpdf-to-latex-swiftapabib-*packagesIf some packages must remain private, they should still be referenced as remote Git dependencies instead of untracked local directories.
Steps to reproduce
git clone https://github.com/PsychQuant/macdoc.git cd macdoc swift build -c releaseExpected behavior
A clean clone should build successfully without requiring manual creation/cloning of extra local package directories.
Current Status
Phase: closed
Last updated: 2026-04-21 by idd-close (batch-close)
Key Decisions
Scope Changes
Blocking
Commits
d771589release: note packages extraction + word-builder-swift wiring (release: note packages extraction + word-builder-swift wiring + #77 bump (#71 #77 #78) #82)d181090refactor: extract pdf-to-latex-swift + ocr-swift + flip gitignore strategy (refactor: extract pdf-to-latex-swift + ocr-swift to PsychQuant repos; commit Tests/WordToMDTests fixtures (continues #78 pattern) #79 refactor: extract pdf-to-latex-swift + ocr-swift + flip gitignore strategy (#79) #89)b565ec0,7095897,d5ee546earlier alignment commits referencing build: move local path dependencies to remote packages for clean clone/build #12