Skip to content

Latest commit

 

History

History
52 lines (43 loc) · 2.69 KB

File metadata and controls

52 lines (43 loc) · 2.69 KB

Development

Use full Xcode with Swift 6, Python 3.9+ for context/CLI checks, and XcodeGen (brew install xcodegen).

make verify
make project
make build
make icon
APP_VERSION=0.5.1 make package

make verify runs context-document checks, unit tests, the public JSON harness and real CLI regression via make verify-harness-cli. The CLI checks build a fresh executable and verify both passing and deliberately failing inputs; no third-party test runner is needed. The current Harness format and HarnessSuite.load are the only supported input/Swift entry points. make build generates FileMint.xcodeproj from project.yml and builds arm64 + x86_64. make package adds ad-hoc bundle signatures, checks both architectures and creates the DMG. Outputs are under build/ and ignored by Git.

Packaging uses an isolated temporary directory under build/package-work.noindex and removes its app/extension registrations and build products when it finishes or fails. The final DMG and checksum remain in build/. make build still keeps its runnable app in build/DerivedData; avoid leaving that development app registered alongside an installed release with the same bundle identifiers.

For updater changes, select the applicable checks from the update verification guide. Client changes need make verify-updates; save/download/open changes also need the interactive make update-sandbox-harness flow. A non-sandboxed CLI download can pass checksums while the installed sandboxed app produces an installer macOS refuses to execute.

  • CorePackage: deterministic naming, templates, preferences and file writes.
  • SharedUI: native creation panel and sandbox folder access.
  • App/FileMint: SwiftUI settings and application entry points.
  • FinderSyncExtension: Finder integration, context menus and extension status.

Start with the compact SPEC router, then load only contracts for the changed behavior and paths. Read HARNESS when selecting checks; do not preload all domain docs or historical acceptance records. Use the AI Playbook for cross-domain features or session handoff. Do not edit the generated Xcode project. No runtime package dependencies.

Future feature ideas, implementation starting points and completion criteria live in the implementation roadmap. The public TODO lists are maintained in the roadmap regions of both READMEs and included by the website homepages. After editing them, build the site with SITE_BASE=/FileMint/ pnpm run site:build to verify the GitHub Pages base path.

For downstream fork maintainers, see the fork synchronization guide.