Clarify what installing latest prerelease version does
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 4.8k
- Forks
- 182
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 1
Description
Recently there was both an 11.7 beta and a 12.0 beta available at the same time. I forgot that this situation can happen when I implemented #95. As a result of how that was implemented, 11.7 was considered to be the latest prerelease version. This isn't wrong, but it might be unexpected.
The way that sorting Xcode versions currently works is by version number, and any adjacent prerelease versions with release dates are sorted by their release dates. This works around the problem of the universal builds of Xcode 12 (12.0 For Macos Universal Apps Beta 2) sorting after the more recent beta builds (12.0 Beta 6) because For sorts after Beta. This is what led to 11.7 Beta sorting after all of the 12.0 prerelease versions.
I think a better solution would be to limit sorting by release date to only within prerelease versions with the same major, minor and patch numbers. So all of the 12.0.0 prereleases would be sorted by release date which should prevent the universal builds from being at the end, and should match user expectations. And any 11.x betas should be sorted adjacent to their release builds.
The end result would be something like this:
...
11.5
11.6 Beta
11.6 (Installed)
11.7 Beta
12.0 For Macos Universal Apps Beta
12.0 Beta
12.0 For Macos Universal Apps Beta 2
12.0 Beta 2
12.0 Beta 3
12.0 Beta 4
12.0 Beta 5
12.0 Beta 6 (12A8189n) (Installed, Selected)
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
Start with the Xcode version-sorting code described in the issue and review the implementation of #95. Check how prerelease versions with release dates are ordered across version numbers. Done means release-date sorting is limited to prereleases sharing major, minor, and patch numbers, producing the ordering shown in the issue.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100