Repository navigation
Import bottles, WhiskyWine and settings from upstream Whisky - #2
Merged
Merged
Conversation
- Bundle IDs: com.istorry.Whisky, com.istorry.WhiskyCmd, com.istorry.Whisky.WhiskyThumbnail (incl. WhiskyKit fallback) - Drop upstream development team ID - Mark project and schemes as upgraded for Xcode 26.2; enable project-wide user script sandboxing and string catalog symbols, keeping sandboxing off for the Whisky target's SwiftLint phase - WhiskyKit: swift-tools-version 6.2, swiftLanguageModes, https dependency URL - SwiftLint: exclude nested .build directories
Data is keyed by bundle ID, so users switching from upstream (com.isaacmarovitz.Whisky) would otherwise see no bottles and have to reinstall WhiskyWine. On first launch of the app or CLI: - Settings missing from our domain are copied over, except a defaultBottleLocation that points at upstream's own bottle folder - WhiskyWine Libraries are moved into our Application Support folder - Upstream's bottle list is merged into ours; bottles stay in place, since Wine prefixes record absolute paths and macOS protects the upstream container folder from being moved Each step is idempotent and completion is only recorded once all succeed, so a failure is reported (alert in the app, stderr in the CLI) and retried on the next launch.
Replaces the Ubuntu SwiftLint workflow, which used a years-old SwiftLint image and did not build the app, with a macos-26 job that lints with a checksum-verified SwiftLint 0.65.1 and builds Whisky and WhiskyCmd against the committed Package.resolved. Points the README badge at the fork.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follows #1, which moved the bundle ID to
com.istorry.Whisky.Why
Bottles (
~/Library/Containers/<bundle-id>/BottleVM.plist), WhiskyWine (~/Library/Application Support/<bundle-id>/Libraries) and settings are all keyed by bundle ID. After the move tocom.istorry.Whisky, anyone switching from upstream Whisky would see an empty bottle list and have to download Wine again from upstream's server.What
UpstreamDataMigration.migrateIfNeeded()runs once, fromWhiskyApp.init(beforeBottleVM.sharedcreates our bottle list) and from WhiskyCmd'smain:com.isaacmarovitz.Whisky. AdefaultBottleLocationthat points at upstream's ownBottlesfolder is skipped, so new bottles go into our container. A custom location is kept.Librariesfolder is moved into ours if we don't have one yet. DLLs are copied into bottles, not linked, so nothing points back into the old location.Each step is idempotent. Completion is recorded only after all steps succeed, so a failure shows an alert in the app (stderr in the CLI) and is retried on the next launch.
Supporting refactors:
BottleDataandWhiskyWineInstallerpaths are now derived per bundle ID, so the upstream locations reuse the same code.BottleDatagained a throwingwrite()(the oldencode()wraps it, behaviour unchanged).defaultBottleLocationis now a named constant instead of a string literal repeated in two views.Also adds
docs/upstream-issue-triage.md: a priority-ranked triage (P0–P3) of the 433 open upstream Whisky-App/Whisky issues, grouped by underlying problem, to plan work on the fork.Verification
swiftlint --strict, Debug and Releasexcodebuildfor Whisky and WhiskyCmd pass with no project warnings.~/Library:defaultBottleLocationskipped, custom one keptBottleVM.plist→ error on stderr, Wine still moved, not marked complete; succeeds on the next run once fixedNot verified: