Sprinkles/contains the macOS app source (Swift, storyboards/xibs, assets).Sprinkles Extension/is the Safari Web Extension target (Swift handler, plist, resources).SprinklesTests/holds XCTest unit tests.Resources/andSprinkles/Assets.xcassets/store shared images and asset catalogs.web-ext/contains packaged Chrome/Firefox extension builds and source folders.Updates/stores prebuilt app archives used for distribution.bin/includes project scripts (version bumping, extension release, reset install).
open Sprinkles.xcodeprojopens the Xcode project for local development.xcodebuild -scheme Sprinkles -configuration Debug buildbuilds the macOS app.xcodebuild -scheme Sprinkles testruns unit tests.bin/bumpincrements build numbers and resolves Swift package dependencies.bin/release-extzips Chrome/Firefox extension builds fromweb-ext/.
- Swift is the primary language; follow Swift API Design Guidelines.
- Use UpperCamelCase for types and lowerCamelCase for methods/properties.
- Keep file names aligned with primary type names (e.g.,
Server.swift). - Formatting is enforced via the Xcode build phase calling
/usr/bin/swift format -r -i ..
- Tests use XCTest in
SprinklesTests/(example:SprinklesTests.swift). - Name test methods
testSomething()and keep them focused and deterministic. - Run tests from Xcode or via
xcodebuild -scheme Sprinkles test.
- Recent history favors short, imperative subjects (e.g., “Fix …”, “Add …”).
- Release commits may be version-only tags (e.g.,
v1.2.1). - PRs should include a clear description, testing notes, and screenshots for UI changes.
- Avoid committing generated archives in
Updates/unless a release is intended. - The app and extension rely on Xcode signing/entitlements; update
*.entitlementscarefully.