NixOS / nixos-hardware

A collection of NixOS modules covering hardware quirks.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Reorganize framework folder (Breaking)

kjhoerr opened this issue · comments

Some discussion of this started in #765 so I thought it might be best to break it out to a separate issue.

The default framework module (framework) is for the Framework 13 11th-gen Intel laptop. Since there are some hardware quirks unique to this laptop that aren't shared by the other gen Framework laptops, this is less than ideal.

Framework is also releasing a Framework 16 laptop which will share some of the same platforms with the 13 but different specs and features, so in anticipation of that it would be best to break them into separate categories. For the above PR we created a 13-inch folder under framework to add the new 7040-amd module, since the upcoming FW16 release would also be 7040-amd. That leaves the other Framework 13 generations under the framework folder and not organized in the 13-inch folder, presumably until that's fixed as a resolution to this issue. I would say there's nearly no chance there is a FW16 that shares an Intel gen platform with the FW13's we've had so far, but they're still in the wrong folder at the moment.

Maybe there's not much more discussion to be had of this, but based on the PR discussion I would hope we are able to reorganize the framework folder and serve warnings for users who are using the old modules. Alternatively, we create a new framework folder so module links can be kept intact and we use links as necessary to group the modules.

I think technically we could move the 12th gen and 13th gen modules into a 13-inch folder without introducing breaking changes since the modules from the flake would just need to be updated to point to the new location, but doing anything with the 11th gen module will probably require breaking something, since the flake module for 11th gen is just called framework.

There are some common configurations between all the gens (so far) that would be worth having as a shared module so it doesn't keep getting duplicated for each gen we add, and it would make sense to make that the default framework module, or some other common module off the base folder.

I'm preparing a PR for changes including an assertion module replacement for the current 11th gen Intel module inspired some by other breaking module changes I have found in this repo. Hope to put that up for review after the other PR is finished. In the meantime my changes are here

It's fine breaking configuration for the 11th gen framework as long as we have clear error messages on what needs to be changed.