mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-08 04:30:19 +03:00
fix(cfe-borrow,template-add,help-add,interface-edit): вывод py-порта не зависит от ОС (#57)
Тот же writer без newline="", что чинился в form-add.py, остался ещё в четырёх py-портах, и пишут они не модули, а 1С XML: заимствованные объекты и метаданные формы (cfe-borrow), Template.xml и XML-макеты (template-add), Help.xml (help-add), вновь создаваемый CommandInterface.xml (interface-edit). Контент там собирается литералами с \n, поэтому текстовый режим Python давал CRLF на Windows — «случайно правильно» — и LF на macOS, ломая канон #57 ровно там, где он только что установлен. Проверено на маке ДО фикса: cfe-borrow 0 CRLF + 33 одиночных LF, template-add 0 + 2, interface-edit 0 + 5. Порчи \r\r\n не было, но это везение: подай такой writer CRLF-контент — каждая строка стала бы \r\r\n. Почему не поймали раньше: аудит гонялся на Windows, где текстовый режим даёт канон; снэпшоты нормализуют EOL; байтовый preserves ни разу не проверялся на маке. Разделены два пути, которые я сперва смешал в cfe-borrow: - save_xml_file — канон (CRLF, без хвоста) для файлов, которые СОЗДАЁМ; - save_text_bom — пишет как есть, для файлов, которые ПРАВИМ: переводы строк уже пришли из самого файла и менять их нельзя (контракт #44/#46/#47). Туда же добавлено чтение с newline="" — иначе CRLF терялся ещё на входе. interface-edit чинится и в PS-порте: ветка -CreateIfMissing давала смешанный EOL (3 CRLF + 2 одиночных LF) уже на Windows. Аудит #57 её пропустил, потому что фильтровал файлы по расширению .xml, а кейс создаёт файл с именем без расширения. Канон, как выяснилось, зависит от типа артефакта: XML — CRLF, текстовый макет — CRLF, а HTML-макет платформа хранит с LF (корпус: 399 LF из 400). Поэтому HTML через канон-writer НЕ идёт. preserves добавлен четырём навыкам (у них его не было вовсе) + отдельно на Help.xml. Именно прогон на маке и даёт покрытие: на Windows эти кейсы зелены и без фикса. Windows 641/641 обоими портами, мак 590/0/51, дрейфа снэпшотов нет. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
668b145010
commit
caf038a192
@@ -3,18 +3,49 @@
|
||||
"preRun": [
|
||||
{
|
||||
"script": "meta-compile/scripts/meta-compile",
|
||||
"input": { "type": "Catalog", "name": "Товары" },
|
||||
"args": { "-JsonPath": "{inputFile}", "-OutputDir": "{workDir}" }
|
||||
"input": {
|
||||
"type": "Catalog",
|
||||
"name": "Товары"
|
||||
},
|
||||
"args": {
|
||||
"-JsonPath": "{inputFile}",
|
||||
"-OutputDir": "{workDir}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"script": "subsystem-compile/scripts/subsystem-compile",
|
||||
"input": { "name": "Склад", "objects": ["Catalogs.Товары"] },
|
||||
"args": { "-DefinitionFile": "{inputFile}", "-OutputDir": "{workDir}" }
|
||||
"input": {
|
||||
"name": "Склад",
|
||||
"objects": [
|
||||
"Catalogs.Товары"
|
||||
]
|
||||
},
|
||||
"args": {
|
||||
"-DefinitionFile": "{inputFile}",
|
||||
"-OutputDir": "{workDir}"
|
||||
}
|
||||
}
|
||||
],
|
||||
"params": { "ciPath": "Subsystems/Склад/CommandInterface" },
|
||||
"params": {
|
||||
"ciPath": "Subsystems/Склад/CommandInterface"
|
||||
},
|
||||
"input": [
|
||||
{ "operation": "place", "value": "{\"command\": \"Catalog.Товары\", \"group\": \"NavigationPanel.Important\"}" }
|
||||
{
|
||||
"operation": "place",
|
||||
"value": "{\"command\": \"Catalog.Товары\", \"group\": \"NavigationPanel.Important\"}"
|
||||
}
|
||||
],
|
||||
"CreateIfMissing": true
|
||||
"CreateIfMissing": true,
|
||||
"expect": {
|
||||
"preserves": {
|
||||
"file": "Subsystems/Склад/CommandInterface",
|
||||
"bom": true,
|
||||
"eol": "crlf",
|
||||
"encoding": "UTF-8",
|
||||
"finalNewline": false,
|
||||
"noCR13": true,
|
||||
"selfClose": "tight",
|
||||
"noEmptyPairs": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user