Создание приложений

Цикл приложения

Найдите команды для проверки, тестирования, запуска и повторной сборки учебного плана после изменений.

Используйте эту последовательность команд при изменении учебного плана из раздела Первое приложение. Проверьте исходники, запустите тест и пересоберите исполняемый файл для поставки.

Выполняйте команды из папки с topaz.toml. Она называется study-plan или source-unavailable, если вы выполнили упражнение с переименованием. Для работы с исходниками нужен topaz, а для платформенной сборки ещё и инструментарий Rust для вашей платформы.

Проверьте настройки проекта

В руководстве создаются следующий topaz.toml, а также src/main.tpz, src/plan.tpz и tests/plan.tpz. Если начинаете новый проект, возьмите полные исходные файлы из руководства.

TOML
[package]
name = "study-plan"
version = "0.1.0"
language = "5.20"
entry = "src/main.tpz"

[build]
target = "native"
deterministic = true

[dependencies]
std = "5.20"

entry выбирает src/main.tpz для запуска. target = "native" задаёт сборку исполняемого файла. После создания или изменения манифеста обновите файл блокировки.

BASH
topaz lock --root .

Команда записывает topaz.lock. При изменении исходников без изменения манифеста и зависимостей используйте существующий файл блокировки.

Проверьте и протестируйте изменения

BASH
topaz fmt --check --root .
topaz check --root . --locked
topaz test tests/plan.tpz --root . --locked

fmt --check сообщает о расхождениях форматирования, не меняя файлы. check проверяет типы и имена во входном файле и импортируемых им модулях. Обе команды завершаются успешно, если проверки пройдены. Выбранный тест печатает следующую строку.

Вывод
tests/plan.tpz: test-ok

При сбое команды исправьте причину, прежде чем продолжать. Для форматирования выполните topaz fmt --root .. Ошибку типа или имени исправьте в указанной строке. Если проверка assert не прошла, сравните tests/plan.tpz с функцией в src/plan.tpz. Если файл блокировки устарел, повторите команду фиксации выше.

Запустите приложение

BASH
topaz run --root . --locked

С исходными данными из руководства результат будет следующим.

Вывод
tasks=2, remaining=25 minutes

Если вы изменили время второй задачи на 30 минут, ожидайте remaining=30 minutes. Тест использует собственное значение 25 минут и по-прежнему проходит.

Пересоберите и передайте программу

BASH
topaz build --release --root . --locked --out-dir ../study-plan-product

Сборка создаёт следующую папку продукта рядом с папкой исходников.

study-plan-product/
├── GENERATED-OUTPUT-NOTICE.txt
├── LICENSE
├── NOTICE
├── target
│   └── release
│       └── program[.exe]
└── topaz-artifact.json

Скопируйте папку продукта целиком на машину с операционной системой и архитектурой, для которых выполнена сборка. Из этой папки запустите ./target/release/program в Unix или .\target\release\program.exe в PowerShell. С исходными данными программа выведет tasks=2, remaining=25 minutes, как показано выше. Готовому исполняемому файлу не нужны Топаз и Rust.

Если приложение объявляет [capabilities.fs], также скопируйте его data/ и подготовьте папки для записи результатов. Рабочим каталогом должна быть папка продукта. Сборка не копирует данные приложения автоматически.

Если Rust отсутствует, установите инструментарий для своей платформы. Если выходная папка содержит другую цель или изменённые сгенерированные файлы, сохраните её и выберите новую пустую папку.

Связанная документация