Add Siemens software catalog

This commit is contained in:
2026-08-17 22:07:35 +03:00
parent 6597f56e48
commit 2cc7a4c0d4
121 changed files with 2670 additions and 0 deletions
+138
View File
@@ -0,0 +1,138 @@
# Правила ведения каталога
Эти правила действуют для всего репозитория. Перед изменением метаданных сверяйся
с `schema/index.schema.json`. Не добавляй поля, которых нет в схеме.
## Структура
- Корень репозитория является корнем каталога; папку `catalog` создавать не
нужно.
- Каждая категория и каждая программа находятся в собственной папке и содержат
ровно один файл `index.yaml`.
- Вложенность категорий не ограничена. Дочерние категории и программы
определяются по файловой структуре и не перечисляются в индексе категории.
- Имя папки — стабильный идентификатор. Используй строчные латинские буквы,
цифры, дефис и подчёркивание.
- В папке программы все загружаемые файлы находятся в `files`, а скриншоты — в
`img`.
- Не создавай отдельные YAML-файлы или папки метаданных для версий. Все версии
описываются в `versions` единственного `index.yaml` программы.
- Папки без `index.yaml`, например `schema`, `files` и `img`, не являются
категориями.
## YAML категории
Используй только следующие обязательные поля и сохраняй их порядок:
```yaml
format: 1
type: category
name: Русское название категории
description: Описание категории на русском языке.
```
## YAML программы
Поля программы располагай в следующем порядке:
1. `format: 1` — обязательное поле.
2. `type: program` — обязательное поле.
3. `name` — обязательное официальное название программы.
4. `description` — обязательное подробное описание на русском языке в формате
Markdown.
5. `homepage` — необязательный URL домашней страницы.
6. `source` — необязательный URL исходного кода.
7. `screenshots` — обязательный массив путей; используй `[]`, если изображений
нет.
8. `versions` — обязательный непустой массив версий.
9. `additional_files` — необязательный массив файлов, не привязанных к версии.
Новые версии добавляй в начало `versions`, от новых к старым. Каждая версия
имеет такой вид:
```yaml
- version: "1.2.0"
status: current
released: "2007-08-14"
files:
- path: files/program-1.2.0.zip
description: Назначение файла на русском языке
platform: win32
sha256: 0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
```
Поля версии располагай в порядке `version`, `status`, `released`, `description`,
`files`. Обязательны только `version` и непустой массив `files`. Необязательный
`status` принимает `current` для актуальной версии и `archived` для устаревшей,
сохранённой ради архива. Если статусы используются у программы, указывай их у
всех её версий. Поле `released` добавляй только при наличии достоверной даты.
Не переноси changelog в `description` версии и не добавляй это поле для полноты.
Оно допустимо только в особом случае, когда нужно зафиксировать существенное
ограничение, которое нельзя выразить номером версии или описанием конкретного
файла.
Необязательное поле файла `platform` принимает одно из значений: `win32`,
`win64`, `dos`, `java` или `j2me`. Для Windows разрядность входит в название
платформы; отдельное поле `architecture` не используется.
Файлы, которые подходят ко всем версиям или существуют отдельно от релиза,
помещай в `additional_files`, а не внутрь случайной версии:
```yaml
additional_files:
- path: files/manual.pdf
description: Руководство пользователя
```
## Текст и достоверность
- Названия категорий, описания программ, версий и файлов пиши на русском языке.
Официальные названия продуктов и технологий не переводи.
- Сохраняй полноту исходного описания. Не сокращай перечень возможностей до
общего пересказа и не удаляй значимые технические подробности.
- Содержимое каждого `description` интерпретируется как Markdown. Для длинного
описания со списком используй литеральный блок `|-` и Markdown-списки; для
обычного абзаца, перенесённого на несколько строк, используй `>-`. Не вставляй
HTML-разметку.
- Не выдумывай даты, ссылки, возможности или платформы. Неизвестное
необязательное поле лучше не добавлять.
- Сначала пытайся определить версию по странице, имени файла, README и
метаданным бинарника. Если номер версии нигде не указан и достоверно получить
его невозможно, используй каталоговое значение `version: "1.0"`. Не выводи
номер версии из даты сборки.
- Если источник содержит только текущую версию, добавляй только её. Не ищи
более ранние архивы в Wayback Machine без отдельного указания пользователя.
## Пути и файлы
- Все пути относительны папке программы и используют `/`.
- Путь загружаемого файла начинается с `files/`; путь скриншота — с `img/`.
- Абсолютные пути, `..` и обратная косая черта запрещены.
- Каждый путь из YAML должен указывать на существующий файл.
- Один файл нельзя одновременно указывать в `versions` и `additional_files`.
- Для каждого добавленного файла вычисляй и указывай SHA-256 в нижнем регистре.
- Архивы должны проходить через Git LFS согласно `.gitattributes`. Остальные
файлы хранятся в обычном Git.
## Стиль YAML
- Кодировка — UTF-8, окончания строк — LF, отступ — два пробела, табуляция
запрещена.
- Версии и даты всегда заключай в двойные кавычки.
- Дата имеет формат `YYYY-MM-DD`, SHA-256 — ровно 64 шестнадцатеричных символа.
- Не используй YAML-теги, anchors, aliases и merge keys.
- Не допускай неизвестных полей и дубликатов в массивах.
## Проверка
Перед завершением изменения:
1. Проверь синтаксис всех затронутых `index.yaml` безопасным YAML-парсером.
2. Проверь их по `schema/index.schema.json` валидатором JSON Schema Draft 2020-12,
если он доступен.
3. Убедись, что все пути существуют и их SHA-256 совпадает с метаданными.
Для заполнения и обновления сумм используй `pnpm sha256 [путь]`, для проверки
без изменения файлов — `pnpm sha256:check [путь]`.
4. Для каждого нового архива выполни `git check-attr filter -- <путь>` и
убедись, что значение равно `lfs`.
5. Выполни `git diff --check`.