Как организовать разработку Python приложения? (debug / release)
Разрабатываю Discord бота. Перед запуском релиза на основном клиенте, тестирую его на другом боте на специальном тестовом сервере.
Когда некое состояние кода (когда был дописан новый функционал/профикшены баги, всё протестировано) можно считать за релиз, он благополучно запускается через командную строку.
Дальше, образуется вот такая дилемма: если продолжить писать код в папке с проектом, то запустить релиз я не смогу из-за некоторых изменённых файлов, в которых не факт что я всё не поломал.
Достаточно продолжительное время в папке проекта у меня была папка dev, в которой я писал код, и когда я заканчивал, копировал из него файлы в корень проекта и запускал приложение. И это реально решало проблему. Я имел возможность запускать код в разработке на одном клиенте и одновременно запускать стабильный релиз когда мне вздумается.
Со временем начала бесить фактически полная идентичность корня проекта и папки dev.
В условном C++, в ещё более условной папке bin, есть 2 подкаталога: debug и release. Скомпилировав проект в release, я всегда его могу оттуда запускать, а смотреть как работает новый код можно через .exe в debug - для меня это является сверхудобной штукой.
Недавно я обнаружил для себя Docker. Примерная идея - заворачивать релиз в контейнер и хранить в отдельной папке в удобном формате (+ к стабильности за счёт упаковки зависимостей).
Правильно ли я думаю? Может можно проще? Как обеспечить удобное "переключение" между пишущимся и стабильным кодом?