yonaskolb / yonaskolb/XcodeGen
Package.resolved isn't versioned; How are deterministic Package versions achieved?
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 8.8k
- Forks
- 908
- Avg merge
- 17d 14h
- Merged PRs (30d)
- 2
Description
(Xcodegen version 2.10.1)
Hey!
I'm trying to migrate our iOS project that uses Xcodegen, to start using a SwiftPM library we use internally. As part of doing this, I am specifying, in my project.yml, the SwiftPM dependency to use.
However, in trying to attempt this, I run into the following problem that is fundamentally at odds with Xcodegen:
- From this article I understand that the
Package.resolvedfile--used for making sure all developers are using the same version of packages is stored in the.xcodeprojdirectory. Here's the relevant quote:
You can find the Package.resolved file inside your .xcodeproj directory at [appName].xcodeproj/project.workspace/xcshareddata/swiftpm/Package.resolved
- However, the premise of using Xcodegen is that the repository is able to discard the
.xcodeprojfolder and related artefacts. So thePackage.resolvedfile can also not be checked in. - How then do developers of a repository get deterministically same versions of their dependencies? I may be missing something here.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read the linked SwiftPM guidance and compare it with XcodeGen's project.yml dependency handling. Determine where Package.resolved is expected after project generation and document the supported workflow for keeping package versions deterministic. Done means the issue has a definitive, project-specific answer.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- build-system
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100