yonaskolb / yonaskolb/XcodeGen

Package.resolved isn't versioned; How are deterministic Package versions achieved?

Open
#743 3 comments 5 reactions 0 assignees View on GitHub

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:

  1. From this article I understand that the Package.resolved file--used for making sure all developers are using the same version of packages is stored in the .xcodeproj directory. 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

  1. However, the premise of using Xcodegen is that the repository is able to discard the .xcodeproj folder and related artefacts. So the Package.resolved file can also not be checked in.
  2. How then do developers of a repository get deterministically same versions of their dependencies? I may be missing something here.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.