feat(rules-core): портувати tauri/release нативно (§2.97) - #582
Merged
Conversation
Концерн стояв у секції «свідомо НЕ портовані» з трьома причинами, з яких дві застаріли непоміченими, а третя була вужчою за записане: - «Rust не має format-preserving YAML» — хибно від §2.71 (rules_template_merge::try_surgical_merge); - «спавн git — процесна дія» — знято на краще: owner/repo читається з .git/config, тобто з файлу; - позиційна вставка кроку — справжній блокер, але лише для ДВОХ патернів із пʼятьох; три інші в YAML не впираються взагалі. Крейт rules-template-merge дістав try_surgical_seq_insert: вставку в YAML-послідовність на ПОЗИЦІЮ. Мерж дописує в кінець, а тут порядок і є змістом — version-sync крок мусить стояти ПЕРЕД tauri-action. Порт усе-або-нічого: loadT0Patterns віддає рівно native-патерн, щойно ключ у NATIVE_FIXES, тож часткова реєстрація тихо втратила б два патерни. Полагоджено два дефекти канону: побитий tauri.conf.json і недосяжний хірургічний шлях тепер гучні помилки, а не тихі «нічого не змінено». Вісім сценаріїв характеризації перенесено в Rust, не викинуто. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
vitaliytv
force-pushed
the
feat/tauri-release-native
branch
from
August 31, 2026 03:51
f32e72b to
2ac90ea
Compare
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.
Закриває пункт 2 плану міграції. Концерн роками стояв у секції «свідомо НЕ портовані».
Рація «не портуємо» пережила свою причину
Три записані причини. На момент порту:
rules_template_merge::try_surgical_mergeсаме це й робитьresolveGithubOwnerRepoспавнитьgit— процесна дія»owner/repoчитається з.git/config, тобто з файлу; побічно зникла залежність відgitуPATHТри інші патерни (
tauri.conf.json— чистий JSON,.changes/.gitkeep— порожні файли, zizmor-коментар — порядкова заміна) у YAML не впираються взагалі.Урок ширший за концерн: рація «не портуємо» має переглядатись разом з інструментом — ніщо не звʼязувало запис у доккоментарі з появою можливості, яку він заперечував.
Розширення спільного крейта
try_surgical_seq_insert(content, path, index, value, format)— вставка в block-послідовність YAML на позицію, зі збереженням форматування.Мерж відповідає на «чого бракує» і дописує в кінець. Тут порядок і є змістом: version-sync крок мусить стояти перед
tauri-apps/tauri-action, інакше версію синхронізовано вже після збірки — тобто дописування в кінець виглядало б успішним і не робило б нічого.Межі чесні:
Noneна не-YAML, порожній послідовності й flow-стилі. Результат перевіряється повторним парсом і звіркою позиції.Чому все або нічого
loadT0Patternsвіддає рівно native-патерн, щойно ключ уNATIVE_FIXES. Часткова реєстрація тихо втратила б два патерни.Полагоджені дефекти канону
tauri.conf.json— гучна помилка замістьcatch { continue }.Доведено
cargo test -p rules-template-merge --features yaml— 33 passed (+3 нових);cargo test -p rules-core --lib concerns::fix_tauri_release— 12 passed;cargo test -p rules-core --lib concerns::fix::— 62 passed;npx vitest run npm/rules/tauri/release/tests/release.test.mjs— 13 passed;-D warningsна обох крейтах — чисто.Вісім сценаріїв T0-половини JS-тесту перенесено в Rust, не викинуто — включно з двома, які найлегше зламати непомітно: крок перед
tauri-actionі виживання коментарів чужого workflow.