История Колеса

Daniel Holth, “The Story of Wheel”, public translation into Russian from English More about this translation.

Translate into another language.

Participants

uhbif19 275 points
Join Translated.by to translate! If you already have a Translated.by account, please sign in.
If you do not want to register an account, you can sign in with OpenID.
Pages: ← previous Ctrl next next untranslated
1 2

The Story of Wheel

История Колеса

History of edits (Latest: uhbif19 4 years, 12 months ago) §

I was impressed with Tarek’s packaging talk at PyCon 2010, and I admire PEP 345 (Metadata for Python Software Packages 1.2) and PEP 376 (Database of Installed Python Distributions) which standardize a richer metadata format and show how distributions should be installed on disk. So naturally with all the hubbub about packaging in Python 3.3, I decided to try it to reap the benefits of a more standardized and predictable Python packaging experience.

I began by converting cryptacular, a password hashing package which has a simple C extension, to use setup.cfg. I downloaded the Python 3.3 source, struggled with the difference between setup.py and setup.cfg syntax, fixed the define_macros feature, stopped using the missing extras functionality, and several hours later I was able to generate my METADATA from setup.cfg. I rejoiced at my newfound freedom from the tyranny of arbitrary code execution during the build and install process.

Сначала, я перевел cryptacular, простую библиотеку на С предназначенную для хеширования паролей, на использование setup.cfg. Я скачал исходники Python 3.3, поборол различия между синтаксисом setup.py и setup.cfg, убрал упомнания define_macros, перестал использовать некоторый отсутствующий функционал, и вот наконец еще пару часов спустя, я уже был готов генерировать файл METADATA из моего новенького setup.cfg. Я уже наслаждался новоприобретенной свободой от тирании исполнения произвольного кода в процессе сборки и установки пакета.

History of edits (Latest: uhbif19 4 years, 12 months ago) §

It was a lot of work. The package is worse off than before, and it can’t be built or installed without patching the Python source code itself.

Это была непростая работа. Новый пакет стал хуже, и его уже нельзя было собрать и установить без правки
исходного кода на Python.

History of edits (Latest: uhbif19 4 years, 12 months ago) §

It was about that time that distutils-sig had a discussion about the need to include a generated setup.cfg from setup.cfg because setup.cfg wasn’t static enough. Wait, what?

В это время на рассылке distutils-sig обсуждали необходимость включения генерарации setup.cfg из setup.cfg, потому-что setup.cfg был недостаточно статичен. Простите, что?

History of edits (Latest: uhbif19 4 years, 12 months ago) §

Of course there is a different way to massively simplify the install process. It’s called built or binary packages. You never have to run setup.py because there is no setup.py. There is only METADATA aka PKG-INFO. Installation has two steps: ‘build package’; ‘install package’, and you can skip the first step, have someone else do it for you, do it on another machine, or install the build system from a binary package and let the build system handle the building. The build is still complicated, but installation is simple.

Конечно был и другой путь сильно упростить процесс установки. Он называется скомпилированные или бинарные пакеты. Вы больше не будете запускать setup.py, ведь его уже нет. Остались лишь METADATA также известный, как PKG-INFO. Установка происходит в два шага: 'скомпилировать пакет'; 'установить пакет', и вы можете пропустить пропустить первый шаг, оставить его кому-нибудь другому, делать на другой машине, или установить систему сборки из бинарного пакета и оставить ее контролировать сборку. Сборка останется сложной, но инсталляция теперь проста.

History of edits (Latest: uhbif19 4 years, 12 months ago) §

With the binary package strategy people who want to install use a simple, compatible installer, and people who want to package use whatever is convenient for them for as long as it meets their needs. No one has to rewrite setup.py for their own or the 20k+ other packages on PyPi unless a different build system does a better job.

Никто не будет переписывать setup.py своему или одному из 20+ тысяч пакетов на PyPi, пока другая система сборки не заработает получше.

History of edits (Latest: uhbif19 4 years, 12 months ago) §
Pages: ← previous Ctrl next next untranslated
1 2