Наша компания (xyz) переносит большую часть нашего Flash-кода на Python.
Во Flash у нас есть общая библиотека между нашими приложениями Flash - пакет xyz. Мы можем вносить изменения в пакет, не опасаясь взлома других приложений при их развертывании, поскольку Flash компилирует их код и включает содержимое библиотеки. Мы развернем финальный SWF через RPM, и все готово. Обновления App1 и App2 никогда не повредят App3.
Как бы вы подошли к этому в Python, зависимости от общей библиотеки.
App1, App2 и App3 могут требовать xyz-lib.rpm и использовать одни и те же файлы библиотеки, но обновленный xyz-lib.rpm должен быть явно проверен на соответствие App1,2,3 каждый время появилась новая библиотека, и это просто обременительно.
Мое любимое на данный момент решение - я могу сделать так, чтобы app1.rpm включал библиотеку с момента ее упаковки - фактически, это своего рода статическое связывание библиотеки. Это, однако, чувствует себя не изящным. (хотя единственная дополнительная плата - это место на жестком диске == дешево.)
Я знаю, что надежное управление разделяемой библиотекой, вероятно, является лучшим решением, но я продолжаю пытаться учесть, что все разработчики - люди, и будут делать ошибки. Мы будем совершать ошибки, и я не хочу, чтобы развертывание app1 сломало app2 и app3 - это просто намного больше для тестирования и отладки.