Swift 6 modernization: end-to-end reference app on the modernized stack - #25
Open
taplin wants to merge 1 commit into
Open
Swift 6 modernization: end-to-end reference app on the modernized stack#25taplin wants to merge 1 commit into
taplin wants to merge 1 commit into
Conversation
…nce app Replaces the old single-file Perfect 3-era starter (Sources/PerfectTemplate/main.swift) with a full Posts CRUD reference app on the modernized stack. LICENSE/LICENSE.zh_CN carried forward unchanged from the original; README.zh_CN.md dropped since it would otherwise be left silently out of sync with the fully rewritten English README.
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.
Summary
Replaces the old single-file Perfect 3-era starter (
Sources/PerfectTemplate/main.swift) with afull reference application demonstrating this ecosystem end to end: a blog-style "Posts" CRUD web
app wiring together Perfect-NIO, Perfect-CRUD, Perfect-MySQL, and Perfect-Logger — JSON API, MySQL
persistence, structured logging, and a static browser UI. This is the last of the initially-planned
wave of PRs in this rollout — it lands last because it depends on everything else.
Also lowers the macOS platform floor from 26 to 12, matching the rest of this org's modernized
packages — confirmed no macOS 26-only API is actually used in the source; same pattern as several
other repos already fixed in this rollout.
Note on branch history: this PR's source branch had to be rebuilt from scratch partway through
— the
taplinfork this modernization work happened in turned out to be an independently-createdrepo, not a real GitHub fork of this one, so its history was completely unrelated to this repo's
real history. The branch now pushed is built directly on top of this repo's actual
main, with themodernized content applied as a single commit — not a squash of unrelated history. While rebuilding
it, the old repo's
LICENSE/LICENSE.zh_CNfiles (which the disconnected fork had silently nevercarried forward) were restored rather than dropped.
README.zh_CN.mdwas not carried forward, sincethe English README was rewritten in full and an unsynced translation would be actively misleading.
Compatibility
swift-tools-version: 6.2,platforms: [.macOS(.v12)](was.v26)Perfect-CRUD,
Perfect-MySQL, and
Perfect-Logger — all merged
Package.resolvedis now committed (the old.gitignoreexcluded it — not recommended practicefor an executable app, fixed as part of the
.gitignorecleanup here)Verification note
This is an executable app, not a library with its own test suite — verified via a full
swift buildfrom a clean
.build, resolving all four sibling dependencies directly against this org's realmerged
mainbranches. One expected, environment-specific linker warning (Homebrew's bottledlibmysqlclientbuilt for a newer macOS than this package's declared floor) — a local toolchainversion mismatch, not a code defect, already documented behavior in Perfect-MySQL's own README.