-
Notifications
You must be signed in to change notification settings - Fork 3
New features, better error messages #6
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey, thanks for the PR! It looks awesome!
I'll take a more in-depth look at it soon.
for now:
- Not sure about this:
Top-level inputs, osImports and hmImports: Importing modules and adding inputs shouldn't have to be separated from the modules imports and hidden in the config section of it. The osModules and hmModules options are still functional.
I've made inputs not part of the modules' config because I didn't want people to try to use module functions on it(like mkIf
) and get weird behaviors. Putting it outside of config
shows that it's like imports
, not something that can be changed conditionally.
I made osModules
and hmModules
as options and not on the same level as imports
and inputs
because they can be changed conditionally most of the time.
- The PR is really hard to read.
- Commits are not documented
- The first commit is formatting of the entire project.. That means it's really hard for me to see what the PR changes (same thing for restructuring). Also, please use the project's formatter: alejandra
do you think you could consider these points and organize the commits so it'd be easier for me to review?
- why remove the nix-patches folder? it allows for versioned patches
- what does that mean? "Note that the options being copied are complex, so you wouldn't want to just copy and paste them into your option declarations." What does it mean complex options?
Hi, here are some comments on the points you made:
|
I spent a few hours trying to organise the changes and created a new PR: #7, so I am closing this one in favour of the new PR. |
Thank you for this awesome project. I have created a fork of it and worked a bit on improving it. Here are the most important changes I made:
inputs
,osImports
andhmImports
: Importing modules and adding inputs shouldn't have to be separated from the modules imports and hidden in the config section of it. TheosModules
andhmModules
options are still functional.useHomeManager
config attribute can be used to toggle Home Manager per config.useHm
module arg is useful for conditional logic around enabling Home ManagerinitialInputs
are needed anymore,nixpkgs
andhome-manager
can be added elsewhere.osOptions
andhmOptions
: These extend the normaloptions
arg to make copying options easier.Breaking changes:
stateVersion
either as an attribute inmkFlake
, or as an attribute per config.combinedManager
module arg now gets you the evaluated root of Combined Manager, rather than it's path. The path is provided ascombinedManagerPath
, if you need it.combinedManager.osPassedArgs
andcombinedManager.osExtraPassedArgs
options. Arguments to NixOS modules can be added viaspecialArgs
(which is passed to Combined Manager, as well as NixOS and Home Manager modules), or viaos._module.args
.