Fix module layering: packages should not depend on git #4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Description:
Сейчас
nixosModules.packagesизmodules/settings/packages/default.nixимпортируетnixosModules.gitизmodules/features/git/default.nix.Это смешивает два разных уровня ответственности:
modules/settings/packages/default.nixдолжен отвечать только за базовый набор системных пакетов;modules/features/git/default.nixдолжен отвечать только за настройку Git и созданиеtree-git.Из-за этого базовый модуль начинает зависеть от feature-модуля, что делает архитектуру менее чистой и хуже масштабируемой. Также это усложняет повторное использование модулей и создаёт лишнюю связанность между слоями конфигурации.
Expected behavior:
modules/settings/packages/default.nixне должен импортироватьmodules/features/git/default.nix. Импорт Git-модуля должен происходить на уровне host/system configuration, а не внутри модуля базовых пакетов.Suggestion:
Разнести модули по назначению:
modules/settings/packages/default.nix— только общие системные пакеты;modules/features/git/default.nix— только Git иtree-git;Description:
Currently,
nixosModules.packagesfrommodules/settings/packages/default.niximportsnixosModules.gitfrommodules/features/git/default.nix.This mixes two different responsibility layers:
modules/settings/packages/default.nixshould only define a base set of system packages;modules/features/git/default.nixshould only handle Git configuration andtree-gitcreation.Because of this, a base settings module now depends on a feature module, which makes the architecture less clean and harder to scale. It also reduces module reusability and introduces unnecessary coupling between configuration layers.
Expected behavior:
modules/settings/packages/default.nixshould not importmodules/features/git/default.nix. The Git module should be imported at the host/system configuration level, not inside the base packages module.Suggestion:
Separate responsibilities:
modules/settings/packages/default.nix— only common system packages;modules/features/git/default.nix— only Git andtree-git;@IN5-AR wrote in #4 (comment):
Я конечно же всё понимаю
Но что это ???