-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Поддержка различных вариантов сборки #45
Conversation
Таргеты описываются в targets.cfg. Один такой файл создаётся в корне воркспейса (для создания в уже чуществующем нужно вызвать По сути, получилось что-то вроде сильно упрощённого Makefile. |
Кажется, если уже давать изменять сборку, то надо сразу возможность переопределять |
Я кстати так и не придумал, почему мейкфайл плохо |
Можно перенести дефолтные GCC_ARGS в конфиг, но тогда возникает следующая проблема: если вдруг окажется, что какого-то дефолтного флага не хватает (и есть смысл его добавить, например, как было с |
Насчёт make - здесь есть 2 проблемы:
|
Мне кажется правильным по умолчанию не создавать никаких конфигов. То есть для обычного человека все еще можно добавлять конфиги для отдельных задач |
В таком случае возникает следующая проблема: если пользователь хочет создать таргет, отличающийся от дефолтного несколькими флагами (и конфиг не существует), то ему придётся искать где-то этот самый конфиг (в коде?). |
Как вариант - можно реализовать что-то подобное (похоже на логику обновления в менеджерах пакетов, например, apt):
Чтобы быстро определять версию конфига, можно просто хранить в нём отдельное поле - всё равно при запуске конфиг читается полностью |
Добавить команду, создающую дефолтный конфиг в текущей папке? |
Если конфиг дефолтный, то зачем его хранить? Я предлагаю
И глобальный создавать в init какой нибудь опцией |
Если убрать автоматическое создание конфига, то есть смысл сделать отдельную команду, которая будет его создавать (вместо опции для Как в таком случае стоит назвать команду для создания конфига? |
Да не важно особо |
Вроде всё готово |
Почему-то на твоей ветке команды заметно дольше работают: Время работыМастер
Твоя ветка
Твоя ветка с патчем diff --git a/kks/util/config.py b/kks/util/config.py
index 4c412e7..b3117c9 100644
--- a/kks/util/config.py
+++ b/kks/util/config.py
@@ -52,9 +52,9 @@ class Target:
self.asm64bit = self.asm64bit if self.asm64bit is not None else default_target.asm64bit
-package_cfg = yaml.safe_load(resource_stream('kks', f'data/{target_file}'))
+package_cfg = None # yaml.safe_load(resource_stream('kks', f'data/{target_file}'))
# package_default should have all fields set
-package_default = Target('default', package_cfg['default'])
+package_default = None # Target('default', package_cfg['default'])
def check_version(cfg_file, cfg, is_global=False):
Из-за чего это? |
|
В init можно сделать импорт локальным. |
Можно захардкодить файл строкой 🌚 |
Теперь шаблон конфига хранится в ~/.kks и (pkg_resources импортируется только по необходимости - когда нужно создать/обновить шаблон) |
Насчёт импортов на уровне модулявозможно, стоит в будущем оптимизировать импорты requests и bs4 (в сумме занимают около 100мс, выполняются даже при запуске локальных команд (напр. `kks run`))Тестировалось на vvd170501/kks@77f5201
|
Если делать Файла в
С |
Странно, у меня нормально устанавливается и запускается (python3.8) Если сделать |
Не помогло Пробую на маке и на сервере с archlinux, и там и там python3.9, одинаково не работает |
Исправил, проблема была в старом |
No description provided.