Conversation
feat: Swift App Template v1.0.0-beta.1 (#11) - Copy and restructure MonthBar infrastructure into template layout - Replace all hardcoded values with `{{TEMPLATE_*}}` placeholder tokens - Add `Packages/TemplateGenerator` — Swift executable that generates app skeleton files using SyntaxKit - Add `Scripts/setup.sh` — interactive/automated setup with 19 token substitutions, Swift file generation, CI activation, full-stack mode, cleanup, and git reset - Add `README.md`, `README.template.md`, and `CLAUDE.template.md` template documentation - Move `workflows/app.yml` → `.github/app.workflow.yml` so GitHub skips parsing it until `setup.sh` activates it - Add `.github/workflows/validate-template.yml` — CI that confirms placeholder tokens haven't been replaced on the template repo - Replace placeholder-specific icon assets with a generic gradient placeholder - Sync `_reference/MonthBar` to latest upstream - Add `_reference/AtLeast` — iOS/watchOS companion app reference with multi-platform Fastlane and dynamic CI matrix - Extract `private_lane :setup_api_key` in Fastfile; add `sync_build_number`, `sync_last_release`, `upload_metadata`, `upload_privacy_details`, `submit_for_review` lanes - Add `pull_request` trigger, concurrency group, and dynamic matrix to CI workflow - Split `build-macos` into always-run and full-matrix jobs; gate Windows/Android on cross-platform condition - Add conditional server test jobs wrapped in `FULL_STACK_ONLY` markers for `setup.sh` processing - Bump actions: `checkout@v6`, `swift-build@v1.5.2`, `swift-coverage-action@v5`, `codecov-action@v6`, `mise-action@v4` - Prefix all Makefile `fastlane` calls with `mise exec --`; add screenshot targets - Expand CLAUDE.md Commands and Code Signing sections with new Fastlane lanes and make targets - Add automation guide TODO tracker linked to issues #28–#50 - Fix `bundle install` and git section in `setup.sh`; harden with `printf -v`, required-field validation, and `swift` availability check - Replace `keywords.txt` with lorem ipsum placeholder to force users to update before App Store submission - Bump Dockerfile base image from `swift:6.0-jammy` to `swift:6.3-noble` - Add `client` to `openapi-generator-config.yaml` generate list - Remove LFS exclusion section from `.gitattributes` --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
PR Review: Changes from Swift-App-TemplateThanks for the additions! This PR brings several useful features: access modifier support for Bugs / Correctness1.
parameters: FunctionParameterListSyntax([]),This means every generated 2. if argument.hasPrefix("\"") && argument.hasSuffix("\"") && argument.count >= 2 {
let content = String(argument.dropFirst().dropLast())This heuristic fails on:
A more robust approach would be to use 3. Force unwrap in let publicRange = generated.range(of: "public")!
let finalRange = generated.range(of: "final")!Force unwrapping in tests causes a crash rather than a clean test failure. Prefer: let publicRange = try #require(generated.range(of: "public"))
let finalRange = try #require(generated.range(of: "final"))Code Quality4.
5. Inconsistent trivia fix for
6. Non-deterministic test assertions in #expect(generated.contains("@Suite(\"App Model\")") || generated.contains("@Suite( \"App Model\")"))The Missing Coverage7. The new IfCanImport("Foundation") { Import("Foundation") }produces: #if canImport(Foundation)
import Foundation
#endifwould prevent regressions. 8. No test for
Minor
Summary
The access modifier work and the |
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## v0.0.4 #125 +/- ##
==========================================
+ Coverage 77.98% 79.35% +1.37%
==========================================
Files 126 129 +3
Lines 5651 4685 -966
==========================================
- Hits 4407 3718 -689
+ Misses 1244 967 -277
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
| public import SwiftSyntax | ||
|
|
||
| /// A Swift `init` declaration. | ||
| public struct Initializer: CodeBlock, Sendable { |
There was a problem hiding this comment.
don't we already have this?
| public import SwiftSyntax | ||
|
|
||
| /// A `#if canImport(Module)` … `#endif` conditional compilation block. | ||
| public struct IfCanImport: CodeBlock, Sendable { |
There was a problem hiding this comment.
don't we already have a pound #?
No description provided.