Два архива распаковываются в одинаковые файлы, но их SHA-256 различаются. Причиной могут быть даты записей, их порядок, права или настройки сжатия.
В разборе воспроизводимых архивов используют поддержку SOURCE_DATE_EPOCH в Python 3.14. При записи через
writestr() с именем файла переменная позволяет задать стабильную дату вместо текущей.Дату лучше брать из неизменяемого события сборки, например коммита. Отдельно нужно сортировать имена, фиксировать содержимое и параметры сжатия. Явно переданный ZipInfo требует своей политики метаданных.
Проверка должна сравнивать байты двух сборок, а не только распакованные файлы. Для строгой воспроизводимости закрепите и версии инструментов: одинаковые исходники не гарантируют одинаковое сжатие в любой среде.
#python #сборка
