Une toolchain Swift sur Linux, pour ne plus ecrire de dates a l'aveugle
J'ai ecrit `asOf(_:)` hier sans pouvoir le compiler. Swift 6.3 est desormais
installe sur la machine de dev (Debian 12 x86_64) et `tests-linux/` compile
et teste la logique PURE des widgets.
10 tests, dont 5 verifies rouges en neutralisant la peremption. Ils couvrent
la remise a zero, la conservation des objectifs et des zones, le report de la
seance du lendemain, et le passage a l'heure d'hiver du 25 octobre — ou un
`+86400` naif ferait basculer le widget une heure trop tot, la veille au soir.
Les sources du paquet sont des liens symboliques vers les vrais fichiers : le
test porte sur le code livre, pas sur une copie.
⚠️ Ne remplace PAS le build Xcode et ne le remplacera jamais : WidgetKit,
SwiftUI, HealthKit et WatchKit sont absents de Swift pour Linux. Ni l'app, ni
les widgets, ni les vues ne se compilent ici.
This commit is contained in:
27
CLAUDE.md
27
CLAUDE.md
@@ -58,6 +58,33 @@ Instructions pour Claude Code sur ce projet. Lis ce fichier en début de session
|
||||
- **Config Capacitor** : `capacitor.config.ts` (TS, source de vérité) → généré vers `ios/App/App/capacitor.config.json`
|
||||
- **Resources** : `resources/` → assets (icons, splash) générés par `@capacitor/assets`
|
||||
|
||||
## 🧪 Tests Swift sur Linux (`tests-linux/`)
|
||||
|
||||
Une toolchain **Swift 6.3** est installée sur la machine de dev :
|
||||
`/home/coder/workspace/toolchains/bin/swift`. Lancer : `./tests-linux/run.sh`.
|
||||
|
||||
⚠️ **Ça ne remplace PAS le build Xcode, et ça ne le remplacera jamais.**
|
||||
WidgetKit, SwiftUI, HealthKit, WatchKit et UIKit sont des frameworks Apple,
|
||||
fermés et propres à leurs plateformes : absents de Swift pour Linux. Ni l'app,
|
||||
ni les widgets, ni les vues ne se compilent ici. Pas de `xcodebuild`, pas de
|
||||
simulateur, pas de signature, pas d'`.ipa`.
|
||||
|
||||
**Ce que ça couvre** : les fichiers qui n'importent que Foundation —
|
||||
`CoachWidgetSnapshot.swift` (dont la péremption `asOf(_:)`) et
|
||||
`CoachQuickLog.swift`. C'est-à-dire l'arithmétique de dates, là où un décalage
|
||||
d'un jour ne se voit pas à la relecture.
|
||||
|
||||
- Les sources du paquet sont des **liens symboliques** vers les vrais fichiers :
|
||||
le test porte sur le code livré, pas sur une copie qui dériverait.
|
||||
- `HeartRateZonesStub.swift` est une **doublure** : le vrai type expose une
|
||||
propriété `Color` et importe SwiftUI. Elle ne reproduit que les propriétés
|
||||
stockées, et `asOf` ne fait que les recopier — si la péremption devait un jour
|
||||
TOUCHER aux zones, ce test cesserait d'être pertinent.
|
||||
|
||||
⚠️ `/home/coder/workspace` est le **seul** chemin persistant du conteneur de
|
||||
dev ; tout le reste (y compris les dépôts) vit sur une couche éphémère. D'où
|
||||
l'emplacement de la toolchain.
|
||||
|
||||
## 🔗 Plugins Capacitor utilisés
|
||||
|
||||
- `@capacitor/push-notifications`
|
||||
|
||||
Reference in New Issue
Block a user