Alfis
Alfis copied to clipboard
info message: "New version X.X.X available! [New version is incompatible with your version Y.Y.Y.]"
При установлении соединения ноды должны обмениваются версиями используемого приложения. Если у ноды версия предыдущая, то в логах и в GUI должно быть выведено сообщение пользователю "Появилась новая версия приложения такая-то!"
Сообщение в GUI должно быть отображено как строкой в Events, так и неотключаемым сообщением на главной вкладке Credentials - как сейчас отображается сообщение о необходимости конвертации ключа из default.key в key1.toml.
Если новая версия несовместима с предыдущей версией, то приложение предыдущей версии длжно отобразить пользователю сообщение "Новая версия, используемая удалённой стороной, несовместима с вашей используемой версией!" как часть того самого сообщения "Появилась новая версия приложения такая-то!".
Проблема в том, что обычно после выпуска релиза я инкрементирую версию, и разрабатываю уже версию повыше. Но соединяюсь я с обычными нодами, на релизных версиях. Я думал на эту тему, но пока непридумал как решить эту проблему. Проще делать запросы на гитхаб, но многие могут начать кричать, что это плохо и т.п.
Разрабатываемая версия вполне может дописывать суффикс "-dev", "-rc" или "-debug" в строке своей версии или иным образом обозначать свой статус как "разрабатываемая версия ПО". Релизные версии нод могут игнорировать разницу в версиях, если удалённая нода имеет признак "разрабатываемой версии".
Если же разрабатываемая версия несовместима с релизной, то разрабатываемая версия должна обозначить этот факт подключаемой ноде и пользователь должен получить сообщение в stdout "Нода Х имеет новую версию Y, несовместимую с версией Z текущей ноды. Нода забанена." вне зависимости от строки версии удалённой ноды.
Например, разрабатываемые версии могут иметь суффикс "-rc1", "-rc2" и т.д. - от "Release Candidate".