-
Notifications
You must be signed in to change notification settings - Fork 573
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
Rework profile management #1434
Conversation
This would be huge! Just the multi-select on it's own would be awesome hehe. |
I'll let you know when it's ready ;) @Torxed but as a question which I'm currently unsure about is how should we handle which greeter to install? Desktop profiles define lightdm and ssdm at the moment. Any suggestions here? |
@Torxed I think this is ready for a review now |
I'll give it some testing during the week! |
@Torxed now that the new release is out, any chance to start merging the open PRs :) ? |
I'm full speed ahead! Feels like a classic but it's been a lot lately. But I'm in merge-mode and I'm planning on getting this in within an hour or so. Testing it now :) |
Any reason why we removed |
@Torxed the main reason I moved them under the scripts namespace was that they are used with the I saw that the symlinked examples folder had to be explicitly handled for various operations (setup, pkgbuild...), and IDEs were quite confused with it (I'm entirely sure I could invest some time in setting it up properly) I understand that they can also be seen as standalone examples, since they are essentially standalone. |
Tested it, seems to not like updating the arch keyring as it spits out an error. |
@VexfulNiko interesting, would you mind sharing the steps and possibly error? @Torxed any more thoughts on this PR otherwise or can we aim to get it into the next release 😀 |
@svartkanin Just downloaded the Arch ISO and ran the Arch install, and it created errors saying it couldn't update the arch keyring. I tried to ping to ensure I had internet, and I did. |
This PR isn't even merged so I don't think it has anything to do with the problem you encountered |
An testing Archiso was created with this pr request if you go into actions |
Ahh I see, regardless I don't think it has anything to do with the changes in this PR. Have you tried running |
I did! Said it was corrupted lol. |
Any update for merging this? |
The latest archiso was built with this bug. For now doing rm -rf /etc/pacman.d/gnupg then pacman-keyring init pacman-keyring --populate archlinux fixes it. Also lsblk gives an error. I am sorry but you fucked up the installer. It's not a shame to make a mistake but it's a shame to deny it. Please fix it. |
@atillabirer How would this PR have "fucked up the installer" if the PR isn't even merged yet? |
Has been merged into #1604 and will be added with it |
Reworking the current profile mangement
With the current version there are some major challenges. It is tightly coupled with
archinstall.storage
which means that any selection in the menu will modify the storage. This makes it very difficult to reset settings and/or override them without forgetting to cleanup the ones not set.These major changes aim to make the profile handling more flexible and dynamic and give users the ability to programmatically generate profiles. Unfortunately, this is a breaking change and the old version of profile definitions will not work anymore.
@Torxed I've transferred over all existing profiles in the repository, but I tried my best to support an automatic transfer for profiles that have been defined by users. Unfortunately, that wasn't feasible without having to cover dozens of edge cases, so this will inevitably a breaking change :(
Related issues that should be fixed with this upgrade
New features
Profiles as classes
All profiles are now defined as a class. This allows that profiles can be inherited from each other, and therefore users can build
profiles on top of other profiles. This will be essential when creating custom profiles :)
Programmatically create profiles
User will now have the ability to programmatically create profiles and inject them, as an example
This also has the major benefit that no separate files have to be create anymore for profiles.
Multiple profiles per file
Currently there's a single profile definition per file. One can now create profiles programmatically as shown above, or specify them
as in the current way in a separate file.
However, now one can also specify multiple profiles per file, since the actual class definitions will be recognized as the profile.
Ability to install multiple desktop profiles
There is now the option to install multiple desktop profiles, similar to multiple servers that already exists
Display the packages to be installed on the desktop profiles
Select which greeter should be installed
Each desktop profile can define a default greeter. When selecting one or multiple desktop profiles, the user will get the option
to chose which greeter should be installed with these profiles. As the default there will be a recommendation of the
default greeter (if only one or if all have the same default).
Create custom profiles in the menu
In the profile menu, there's also the option to create custom profiles
They will also be exported as configuration settings. If they have been created and set to disabled, and another profile (e.g. Desktop) is set then they will still be exported, this case any definitions won't be lost.
New option in the
Menu
for "Back"In some Menus it makes sense to display a visual "Back" option. This option will behave the same way as ESC essentially does but it is more intuitive.
Breaking changes
Schema changes
The schema for the profile configuration has changed. Also the gfx driver configuration has been moved inside the profile configuration since it is never used as a standalone but only in combination with the respective profiles selected