Паспорт версии шрифта: как связать файл с исходником и проверкой

Паспорт версии шрифта — короткая запись, которая связывает конкретный экспортированный файл с исходным проектом, датой сборки и результатами проверки. Он помогает понять, откуда взялся файл, какие изменения в него вошли и чем он отличается от соседних версий. Такой паспорт особенно полезен после первой сборки, когда шрифт начинает жить в нескольких макетах, папках и форматах.
Зачем нужен паспорт, если есть имя файла
Имя вроде `MoyFont-v1.2-final.ttf` выглядит описательно, но само по себе не доказывает, что файл действительно собран из ожидаемого исходника. Суффиксы «финал», «последний» и «новый» быстро теряют смысл, если появляются копии, тестовые экспорты и правки после даты в имени. Через несколько недель команда может не отличить утверждённую версию от рабочего файла с похожим названием.
Паспорт решает задачу происхождения. Он отвечает на практические вопросы: какой исходный проект использовали, кто и когда собрал файл, какие форматы экспортировали, какие правки вошли в выпуск и что проверили перед передачей. Это не бюрократический отчёт и не замена журналу изменений. Его задача — дать каждому артефакту минимальный контекст, который можно проверить без догадок.
Паспорт особенно ценен, когда один шрифт существует в виде нескольких файлов: например, TTF для рабочего документа и WOFF2 для сайта. Одинаковое имя семейства ещё не означает, что файлы собраны из одной ревизии. Запись рядом с экспортами позволяет сопоставить набор файлов с одним исходным снимком проекта и не смешать их с тестовыми вариантами.
Разделите три идентификатора
Для надёжной записи различайте проект, версию шрифта и конкретный файл. Проект — рабочий источник: документ или набор файлов, где хранятся контуры и настройки. Версия — принятое состояние этого проекта, например 1.2. Файл — результат экспорта определённого формата, например `MoyFont-Regular-v1.2.ttf`. Один проект может породить несколько версий, а одна версия — несколько файлов.
Не используйте один номер для любого изменения. Если корректировка остаётся внутри рабочего файла и ещё проверяется, это кандидат на выпуск, а не автоматически новая опубликованная версия. После принятия изменений обновите номер или иной понятный идентификатор версии согласно принятой в проекте схеме. Смысл схемы важнее её сложности: читатель паспорта должен понимать, какой выпуск считается действующим.
Для небольшого личного проекта достаточно последовательных обозначений вроде `v1.0`, `v1.1`, `v1.2`. Более важное различие можно записать словами: «тестовая сборка», «кандидат», «утверждённый выпуск». Не объявляйте каждую мелкую правку «крупной версией» и не пытайтесь по номеру угадывать масштаб изменений, если команда не договорилась о правилах. Сам паспорт фиксирует факты; правила именования задаются отдельно и последовательно.
Что записать в паспорте
Начните с полей, которые позволяют однозначно восстановить происхождение и назначение файла. Не требуется собирать все сведения о проекте: записывайте то, что помогает повторно найти исходник, сравнить экспорты и решить, можно ли передавать файл дальше.
- Укажите семейство, начертание, номер версии и статус: например, «Рукописная, Regular, 1.2, утверждена».
- Запишите дату экспорта, ответственного за сборку и короткий идентификатор исходного снимка: номер коммита, имя архивной папки или дату копии.
- Перечислите экспортированные файлы и форматы, включая начертание и платформу назначения, если это важно.
- Сформулируйте изменения этой версии одним-двумя предложениями и отдельно перечислите заметные ограничения.
- Запишите проведённые проверки, использованные тестовые строки и результат для каждого файла.
- Сохраните контрольную сумму файла, если нужно обнаруживать незаметную замену или повреждение копии.
В паспорте не смешивайте запланированные изменения с уже сделанными. Если новая форма буквы пока не включена, поместите её в список будущей работы или журнал изменений, а не в перечень состава выпуска. Аналогично, не отмечайте тест как пройденный только потому, что файл экспортировался без ошибки: экспорт подтверждает создание файла, но не читаемость, состав знаков или корректную работу в макете.
Как связать экспорт с исходным проектом
Перед экспортом сохраните отдельную точку восстановления исходника. Это может быть архивная копия папки, версия в системе контроля изменений или именованный снимок в используемом редакторе. Главное — не перезаписывать единственную копию источника готовой сборкой. Для паспорта достаточно ссылки на идентификатор снимка и понятного пути, доступного тем, кто будет сопровождать шрифт.
Дайте каждому выпуску отдельную папку или собранную директорию. Например, в `releases/1.2/` можно хранить сами файлы и `manifest.txt`, а рабочий проект оставить отдельно. Не обязательно применять именно такую структуру: важно, чтобы готовый экспорт нельзя было перепутать с временными файлами редактора. Название папки должно совпадать с номером в паспорте.
Если экспортируете несколько форматов, фиксируйте их по одному. Например, TTF и WOFF2 могут использоваться разными продуктами и проходить разные проверки. Укажите точное имя каждого файла, формат и целевое применение. Если один файл пересобран после дополнительной правки, он больше не соответствует прежней записи — создайте новый кандидат или выпуск, а не подменяйте файл молча.
Проверяйте файл как отдельный результат
Проверка должна относиться к конкретному экспорту, а не только к исходному проекту. Для каждого файла подтвердите открытие, наличие ожидаемого набора знаков и правильность имени начертания. Затем наберите заранее выбранные фразы: короткую строку с характерными парами букв, длинный текст для наблюдения за ритмом и пару примеров из реального проекта. Проверяйте различимость проблемных знаков, интервалы и неожиданные подмены.
Если версия исправляет конкретное место, добавьте в тест короткий пример, который раньше показывал дефект, и ещё один обычный текст без этого дефекта. Так проверяется и решение, и риск побочного изменения. Например, для правки формы «б» можно отдельно проверить её рядом с цифрой 6 и прочитать абзац с несколькими строчными буквами. Одного увеличенного глифа недостаточно, чтобы судить о качестве набора.
Записывайте условия проверки, когда они влияют на повторяемость: приложение, операционная система, размер набора, включённые функции шрифта или способ установки. Не превращайте паспорт в длинный журнал каждого клика. Достаточно такой детализации, чтобы другой человек мог повторить ключевые наблюдения или понять, почему его результат отличается.
Контрольная сумма: когда она полезна
Контрольная сумма — компактный отпечаток содержимого файла. Если содержимое изменится, вычисленное значение обычно будет другим, поэтому сумма помогает отличить две копии с одинаковым именем и проверить, что передан именно тот файл, который записан в паспорте. Для задачи достаточно использовать распространённый инструмент SHA-256 и хранить его вывод рядом с точным именем файла.
Сумма не сообщает, хороший ли это шрифт, и не показывает, что именно изменилось. Она только помогает установить тождественность файла. Если вы пересобрали экспорт даже из того же исходника, результат может иметь другую контрольную сумму. Это не обязательно говорит об ошибке: метаданные или порядок данных внутри файла тоже могут повлиять на байтовое содержимое. В таком случае проверьте дату, исходный снимок и тесты, а затем обновите запись.
Для семейного или учебного проекта контрольная сумма может быть избыточной. Она становится полезной, когда файлы пересылают через несколько каналов, хранят в разных местах, передают заказчику или регулярно заменяют в макетах. Не вставляйте длинное значение в имя файла: храните его в паспорте или манифесте, чтобы имя оставалось читаемым.
Порядок выпуска: от правки до передачи
- Зафиксируйте, какие изменения планируется включить, и сохраните исходный проект в отдельной точке восстановления.
- Проведите правки в рабочей копии и отметьте, какие пункты журнала изменений закрыты, отложены или требуют проверки.
- Экспортируйте кандидата в отдельную папку с номером и статусом, не заменяя действующий выпуск.
- Проверьте каждый экспорт в предусмотренных тестовых текстах и целевых приложениях; запишите результаты по конкретным файлам.
- Исправьте обнаруженные проблемы и повторите экспорт с новым идентификатором кандидата, чтобы не смешать старые и новые байты.
- После принятия назначьте выпуску согласованную версию, рассчитайте контрольные суммы при необходимости и заполните паспорт.
- Передайте вместе с файлами паспорт и ссылку на исходный снимок; старую принятую версию сохраните до подтверждения замены.
Такой порядок позволяет отличить окончательный выпуск от попытки проверить одну правку. Если кандидат провалил тест, он остаётся в истории проекта как неутверждённый вариант, а действующий файл продолжает использоваться. После успешной проверки получатель получает не только файл, но и ясный ответ, чем он является и какие проверки уже прошёл.
Короткий шаблон записи
Сохраните шаблон в обычном текстовом файле или таблице, которую команда действительно будет обновлять. Один паспорт может описывать один выпуск и содержать несколько строк экспорта. Для большой библиотеки удобнее держать общую таблицу с фильтрами по семейству, версии и статусу.
Семейство и начертание — …; версия и статус — …; дата экспорта — …; ответственный — …; исходный снимок — …; изменения — …; файлы и форматы — …; тестовые тексты и приложения — …; результат проверки — …; ограничения — …; контрольная сумма каждого файла — …; предыдущий выпуск — …
Если часть полей неприменима, напишите «не используется» или оставьте её пустой по единому правилу. Не оставляйте неоднозначные слова вроде «последний», «новый» или «готовый» без даты и номера. Паспорт должен быть полезен человеку, который увидит его через полгода и не помнит обстоятельств сборки.
Частые ошибки при учёте версий
**Перезаписывать готовый файл тем же именем.** Получатели не узнают, что содержимое заменили, а старое состояние исчезнет из доступной папки. Сохраняйте новый кандидат отдельно и меняйте действующий файл только после проверки и согласованной передачи.
**Считать имя семейства доказательством версии.** В свойствах двух экспортов может быть одно семейство, хотя они собраны из разных исходников. Сверяйте номер выпуска и паспорт; при необходимости сравнивайте контрольные суммы.
**Сохранять паспорт отдельно от файла и терять связь.** Если документ называется `описание.docx`, а в папке несколько экспортов, быстро становится непонятно, к чему относится запись. Указывайте точные имена файлов и размещайте паспорт рядом с выпуском либо ведите индекс с прямым путём.
**Записывать только удачные проверки.** Замечание о том, что именно не проверялось, помогает не переоценить готовность файла. Используйте ясные статусы «проверено», «не проверено», «не применимо» и кратко объясняйте важные ограничения.
**Смешивать рабочую и опубликованную версии.** Файл в папке текущих правок может меняться каждый день. Храните утверждённые экспорты отдельно от рабочих материалов и не называйте рабочий файл «релизом» до завершения проверки.
Чек-лист перед передачей
- Исходный проект сохранён в точке, которую можно найти и открыть.
- Версия и статус понятны, а имя каждого экспортированного файла записано точно.
- Состав знаков и необходимые начертания соответствуют назначению выпуска.
- Тестовые строки и приложения указаны, а результаты относятся к конкретным файлам.
- Невыполненные проверки и известные ограничения явно отмечены.
- Контрольные суммы сохранены там, где важно сверять копии.
- Паспорт лежит рядом с экспортами или доступен через однозначную ссылку.
- Предыдущий принятый выпуск можно восстановить, пока замена не подтверждена.
Часто задаваемые вопросы
Нужен ли паспорт для одной личной гарнитуры?
Для единственного файла, который вы храните и используете сами, хватит короткой текстовой записи с номером версии, датой и перечнем изменений. Паспорт не обязан быть отдельным формальным документом. Его ценность растёт, когда появляются копии, несколько форматов, макеты или другие участники проекта.
Чем паспорт отличается от журнала изменений?
Журнал изменений рассказывает, как развивался проект: какие замечания поступали и какие решения принимались. Паспорт описывает конкретный выпуск и связывает экспортированные файлы с исходной точкой и результатами проверки. Эти документы дополняют друг друга, но не заменяют один другой.
Надо ли пересчитывать контрольную сумму после экспорта в другой формат?
Да. Контрольную сумму рассчитывают для конкретного файла, поэтому TTF и WOFF2 имеют отдельные значения. При любом пересохранении или пересборке файла вычислите сумму заново и запишите её рядом с точным именем соответствующего экспорта.
Можно ли назвать несколько форматов одной версией?
Можно, если они экспортированы из одного принятого состояния исходника и прошли необходимые для своих задач проверки. В паспорте всё равно перечислите каждый файл отдельно. Если один формат пересобрали позже после дополнительной правки, укажите это как новый кандидат или отдельный выпуск.
Что делать, если контрольная сумма отличается, а имя не изменилось?
Считайте, что перед вами другая копия, пока не выяснена причина. Сверьте исходный снимок, дату экспорта и журнал изменений, затем повторите проверки. Если файл был заменён намеренно, обновите паспорт и передайте новую запись вместе с экспортом.
Где хранить паспорт версии?
Храните запись рядом с файлами выпуска и дублируйте её в общем индексе, если у проекта есть каталог версий. При работе нескольких человек укажите место, доступное всей команде. Не оставляйте единственную копию паспорта в личной папке автора.
Итог
Паспорт выпуска связывает исходный проект, версию, экспортированные файлы и их проверки. Записывайте только сведения, которые помогают идентифицировать и безопасно заменить конкретный файл; поддерживайте документ одновременно с выпуском. Когда рукописный шрифт готов к новой итерации, создайте её в Fontgenerator, затем сохраните исходник, экспорт и паспорт как связанные части одной версии.