Перейти к содержимому

Публикация в каталог

Публиковать скринеры может любой аккаунт Space Market. Каждую версию проверяют автоматически и вручную: валидатор, пробный запуск и модератор. После одобрения версия появляется на витрине store.space-terminal.com, и пользователи добавляют её в свои терминалы. Как написать скринер — Свой скринер.

Для каталога в manifest.yaml нужны ещё три поля:

description: {ru: "Что показывает скринер и откуда данные", en: "What it shows and where the data comes from"}
categories: [open-interest] # от одной до трёх
source: https://github.com/you/my-screener # необязательно
  • description — текст карточки на витрине, до 2000 символов на каждом языке. Пишите, что показывает таблица и откуда данные: по нему модератор сверяет поведение плагина.
  • categories — от одной до трёх категорий витрины, список значений — в разделе Манифест.
  • source — ссылка https:// на исходный код, если он открыт.

Проверьте: st validate должен напечатать catalog: ready. Версия — вида 1.2.0 без хвоста +…. Код модуля для каталога — не больше 4 МиБ; обычный скринер на Rust занимает 150–300 КиБ, на TypeScript — около 1 МиБ.

  1. Зарегистрируйтесь или войдите на store.space-terminal.com.
  2. В шапке сайта откройте Автору.
  3. В поле Имя автора укажите имя, под которым ваши скринеры увидят все, — от 2 до 40 символов — и нажмите Стать автором. После этого имя показывается в строке Имя в каталоге, сменить его можно кнопкой Изменить.
  4. В панели токенов введите имя токена в поле Новый токен, например macbook или github-actions, и нажмите Создать токен.
  5. Нажмите Копировать и сохраните токен — он начинается с stp_.
Окно терминала
st login

Вставьте токен в ответ на запрос и нажмите Enter. st сохранит его в файл настроек, доступный только вашей учётной записи, и дальше будет брать оттуда. Для сборки на сервере или в CI токен можно передать переменной окружения ST_TOKEN.

Окно терминала
st publish

Что происходит:

  1. st собирает плагин и проверяет манифест, поля каталога и модуль — так же, как проверит сервер.
  2. Пробный запуск у вас на компьютере: init и три вызова on_timer без сети, на тестовых данных. Если плагин падает, st остановится и ничего не отправит.
  3. Загрузка на сервер. Сервер повторяет проверки и пробный запуск — до 20 секунд.
  4. Версия получает статус на модерации, st печатает итог пробного запуска и ссылку на кабинет автора.

Пробный запуск без сети не видит бирж, поэтому скринер, которому нужен HTTP, получит пометку «есть замечания» — это нормально. Чтобы модератор увидел настоящие строки, приложите запись из st record:

Окно терминала
st publish --recording recordings/<запись>.json

Запись — не больше 4 МиБ; на ней же пройдёт пробный запуск на сервере.

Каждую версию смотрит человек. Правило модерации, как оно написано на сайте: «Модерация проверяет, что скринер делает то, что обещает описание, и ходит в сеть только за данными бирж».

Статус версий — в кабинете Автору, в списке ваших скринеров:

СтатусЧто значит
на модерацииЖдёт решения модератора
одобренаЕсть на витрине, пользователи могут её поставить
отклоненаПод версией — [Модератор] и причина отказа. Файлы отклонённой версии удаляются
отозванаМодератор снял уже одобренную версию

Рядом — [Автопроверка]: автопроверка пройдена, есть замечания или ошибка пробного запуска, с подробностями. Писем о решении нет — смотрите статус в кабинете.

Поднимите version в manifest.yaml и снова выполните st publish: номер каждой новой версии должен быть больше прежних. У пользователей новая версия не ставится сама — терминал показывает кнопку ↑ и спрашивает (см. Обновления). Пользователь, закрепивший версию, остаётся на ней.

Бету публикуйте с суффиксом, например 1.3.0-rc.1: пользователи без закрепа получают последнюю стабильную версию, а бету — только если закрепят её в Мои плагины. Исключение — скринер, у которого ещё нет ни одной одобренной стабильной версии: тогда бета ставится всем. Первый выпуск лучше сразу делать стабильным, например 0.1.0.

Имя скринера (id) закрепляется за тем, кто опубликовал его первым: другой автор с тем же id получит отказ.

ЧтоЛимит
Версий на модерацииНе больше 3 у одного скринера и 10 у автора
ПубликацийНе больше 30 в час с одного IP-адреса
МанифестДо 64 КиБ
Модуль screener.wasmДо 10 МиБ, код — до 4 МиБ
Запись для --recordingДо 4 МиБ

st publish печатает код ошибки и подсказку:

КодПричина и что делать
not ready for the catalogНет categories или description — заполните поля каталога
version_exists, version_not_greaterТакая версия уже есть или она не больше прежних — поднимите version
id_takenЭто имя принадлежит другому автору — смените id
not_authorНе задано имя автора — сделайте это в кабинете Автору
unauthorized, token_invalidТокен отозван или введён с ошибкой — создайте новый и выполните st login
too_many_pendingМодератор ещё не посмотрел прежние версии — дождитесь решения
screener_revokedМодератор снял скринер из каталога — новые версии не принимаются
invalid_recordingФайл записи не от st record или от другого скринера — запишите заново или публикуйте без --recording
rate_limited, server_busyСлишком часто или сервер занят — st подскажет, через сколько повторить
the trial run failedПлагин упал на пробном запуске у вас — исправьте ошибку до загрузки

Модератор может отозвать версию или снять скринер целиком — например, если он ходит в сеть не за данными бирж. Терминалы пользователей удалят его при следующей проверке. В кабинете у скринера появится снят модератором и Причина: ….