From b92a924dbb69f4176a7cd18823be54fbf117f2a0 Mon Sep 17 00:00:00 2001 From: andreykropotov Date: Mon, 3 Aug 2026 18:33:32 +0400 Subject: [PATCH] fix(sync): keep mirror-only CI out of personaclick/flutter-sdk MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The mirror is a generated artifact: quality and versioning decisions belong to rees46/flutter-sdk, which is green before a sync ever starts. Three workflows are now stripped on the way over. checks.yaml cannot pass there — the rename lengthens import lines past 80 cols, so dart format rewraps 12 files. integration-android.yaml drives Patrol against api.personaclick.com, where the example's hardcoded demo shop c1140c... does not exist, and the example APK does not build anyway (google-services.json is deleted while build.gradle.kts still applies the google-services plugin). version.yaml would run semantic-release over the mirror's own history, where every commit is 'feat(release): sync (#N)' — a feat, so it would invent a minor bump and drift from the version this sync delivers. What is left in the mirror is deploy.yaml + publish.yaml: see the synced version, tag it, publish to pub.dev. Also corrects the header comment: the engine deletes before renaming, so the deletions are source paths. --- github/repo-sync-replacements/flutter-sdk.yml | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/github/repo-sync-replacements/flutter-sdk.yml b/github/repo-sync-replacements/flutter-sdk.yml index b2f5b51b..3308d108 100644 --- a/github/repo-sync-replacements/flutter-sdk.yml +++ b/github/repo-sync-replacements/flutter-sdk.yml @@ -1,6 +1,7 @@ # Replacement rules for syncing rees46/flutter-sdk -> personaclick/flutter-sdk. # Consumed by rees46/workflow/.github/actions/sync/read-replacements (replacementsRepo: rees46/workflow) -# and applied by @scripts/repo-replacement (renames paths + file contents, then deletions). +# and applied by @scripts/repo-replacement, which deletes first and only then renames +# paths + file contents — so `deletions` below are SOURCE paths, pre-rename. # # Order matters: the api-domain rule must run BEFORE the generic "rees46" rule, # otherwise "api.rees46.ru" would become "api.personaclick.ru" (wrong TLD). @@ -30,6 +31,24 @@ deletions: # (personalization_flutter_sdk.dart -> personaclick_flutter_sdk.dart) takes its # path without collision. The example uses PersonalizationSdk directly. - lib/personaclick_flutter_sdk.dart + # Quality gates belong to the canonical repo: both run green on rees46/flutter-sdk + # before a sync starts, and neither can pass in the mirror. + # checks.yaml — `dart format --set-exit-if-changed` fails on 12 files, because + # "personaclick" is twice the length of "rees46" and the rename pushes import + # lines past 80 cols, so the formatter rewraps them. + # integration-android.yaml — Patrol drives the example app against a live + # backend, and the shop it hardcodes (c1140c…) does not exist on + # api.personaclick.com. The example APK does not even build here: its + # google-services.json is deleted above while build.gradle.kts still applies + # the com.google.gms.google-services plugin. + - .github/workflows/checks.yaml + - .github/workflows/integration-android.yaml + # Versioning is decided in the canonical repo too: the mirror receives the bumped + # pubspec version through this sync. Its own semantic-release run would read the + # mirror's history, where every commit is `feat(release): sync (#N)` — a feat, so + # it would invent a minor bump of its own and drift from rees46. The mirror keeps + # deploy.yaml + publish.yaml only: see the new version, tag it, publish to pub.dev. + - .github/workflows/version.yaml # Preserve the target repo's own README only. # NB: ".git" is NOT listed here on purpose — the engine already hard-skips the