ITPGCHANNEL Telegram 3394
Будни #bootstrap, #lab, #home_lab

У меня в пакетнике нет способа передать какую-то информацию от пакета "наверх". То есть, у меня флаги наследуются вниз по дереву зависимостей, а вверх - нет.

Почему так?

Потому что такая фича делает язык описания сборки пакетов turing complete, и построение пакетов не обязательно будет сходящейся процедурой:

{% if not X %}
{% yield X %}
{% endif %}


(тут yield - гипотетическая конструкция, которая поднимает флаг до корня)

Свойство это важное, его терять не хочется.

Где это может быть полезно?

Скажем, у меня есть 10 статически слинкованных программ с Python. Они, сука, большие, потому что в каждой из них есть Python, и все зависимые модули.

Эту проблему можно решить, например, так - собрать один большой бинарник python, в котором были бы все модули, нужные этим 10 программам, и использовать этот python для их запуска. Или, например, программы могут декларировать нужные им фичи от ядра.

Фича выше делает такое возможным, например, каждый бинарь может yield список всех нужных ему модулей, а сборка бинарника python получала бы этот список на вход, и добавляла в свои зависимости.

Увы.

Но, благодаря тому, что моя home lab катается не просто через IX, а через простенький IaC поверх IX, то такая возможность у меня есть - я просто руками собираю все нужные модули для всех сервисов, и передаю их в пакет с python.

https://github.com/pg83/lab/blob/master/lab/cg.py#L986-L992 - вот сервис декларирует все свои зависимости.

https://github.com/pg83/lab/blob/master/lab/cg.py#L1569 - вот я их агрегирую

https://github.com/pg83/lab/blob/master/lab/cg.py#L1598 - передаю в пакет, собирающий python, через флаг py_extra_modules
👍136🤔5🔥3🤡3🤮1



tgoop.com/itpgchannel/3394
Create:
Last Update:

Будни #bootstrap, #lab, #home_lab

У меня в пакетнике нет способа передать какую-то информацию от пакета "наверх". То есть, у меня флаги наследуются вниз по дереву зависимостей, а вверх - нет.

Почему так?

Потому что такая фича делает язык описания сборки пакетов turing complete, и построение пакетов не обязательно будет сходящейся процедурой:

{% if not X %}
{% yield X %}
{% endif %}


(тут yield - гипотетическая конструкция, которая поднимает флаг до корня)

Свойство это важное, его терять не хочется.

Где это может быть полезно?

Скажем, у меня есть 10 статически слинкованных программ с Python. Они, сука, большие, потому что в каждой из них есть Python, и все зависимые модули.

Эту проблему можно решить, например, так - собрать один большой бинарник python, в котором были бы все модули, нужные этим 10 программам, и использовать этот python для их запуска. Или, например, программы могут декларировать нужные им фичи от ядра.

Фича выше делает такое возможным, например, каждый бинарь может yield список всех нужных ему модулей, а сборка бинарника python получала бы этот список на вход, и добавляла в свои зависимости.

Увы.

Но, благодаря тому, что моя home lab катается не просто через IX, а через простенький IaC поверх IX, то такая возможность у меня есть - я просто руками собираю все нужные модули для всех сервисов, и передаю их в пакет с python.

https://github.com/pg83/lab/blob/master/lab/cg.py#L986-L992 - вот сервис декларирует все свои зависимости.

https://github.com/pg83/lab/blob/master/lab/cg.py#L1569 - вот я их агрегирую

https://github.com/pg83/lab/blob/master/lab/cg.py#L1598 - передаю в пакет, собирающий python, через флаг py_extra_modules

BY commit -m "better"




Share with your friend now:
tgoop.com/itpgchannel/3394

View MORE
Open in Telegram


Telegram News

Date: |

ZDNET RECOMMENDS In handing down the sentence yesterday, deputy judge Peter Hui Shiu-keung of the district court said that even if Ng did not post the messages, he cannot shirk responsibility as the owner and administrator of such a big group for allowing these messages that incite illegal behaviors to exist. Don’t publish new content at nighttime. Since not all users disable notifications for the night, you risk inadvertently disturbing them. Choose quality over quantity. Remember that one high-quality post is better than five short publications of questionable value. Developing social channels based on exchanging a single message isn’t exactly new, of course. Back in 2014, the “Yo” app was launched with the sole purpose of enabling users to send each other the greeting “Yo.”
from us


Telegram commit -m "better"
FROM American