ublue-image template repository #105
Replies: 4 comments 9 replies
-
Good to see the discussion finally being moved here! First: I'd like to acknowledge some miscommunications that have happened. Here's what I view as the benefits of using a dedicated startingpoint repository instead of just telling people to template off of main:
I also feel that having a separate repository for a starting point makes intuitively more sense (obviously this is subjective, but this serves to further illustrate my viewpoint). When creating your own image templating from main, the first thing you'd probably want to do is to change the base image to be main, so that you'd always get the latest changes from the uBlue project and not have to sync the delightfully frequent changes from upstream. Then, you'd be duplicating the work already done on uBlue. For someone like me, to just create their own image with a couple packages and configuration files shipped with it, it could be confusing when upon templating from main you would have the following situation; A repository that builds all possible images for all possible desktop environments. On a truly simplified dedicated startingpoint image, that same process above would be just changing the image URL after the And not to mention, if you were to just override the That being said, there are still valid use cases for templating from main instead. One that comes to mind is explicitly removing features or packages. If you templated from main, you can just remove the lines where they get added and do no further changes. If you want to also provide Nvidia images with your slim-ublue-main, however, you also need to fork the Nvidia repo to build them based on your own main. |
Beta Was this translation helpful? Give feedback.
-
I think we should also discuss the structure of the starting point repository. |
Beta Was this translation helpful? Give feedback.
-
One thing I find concerning about the template workflow is that is squashes the git history. So if you create a template off main, modify it, and then ublue updates with things you want, it's harder (but still possible) to pull the changes downstream. Templating is normally used for like, providing the user a Hello World starting point in a programming language. But a Containerfile is more of a living document. |
Beta Was this translation helpful? Give feedback.
-
It might be useful to have, in the starting point repo, a shell script that walks you through basic customization (like do you want nvidia, prompts you to create a signing key, etc.) Similar to |
Beta Was this translation helpful? Give feedback.
-
This is a conversation that started in our discord that I want to pursue more here for discussion.
Github has the ability to define template repositories. Today the ublue-os/main repo, from https://github.com/orgs/ublue-os/discussions/101 is a template repo. This works well if you're making another ublue-os org - but there is no easy way to make a downstream ublue image. An example of what a downstream image template repo was demonstrated here https://github.com/ublue-os/startingpoint. I think this is a great start and I'd like to discuss the following enhancements.
First, the goal of this repo is to solve the following user stories:
For this, I think the following skeleton repo structure would best serve that need:
(this structure may change as the main image iterates)
Containerfile will be parameterized with something like:
This sets the image base as the flavor / image from ublue-os (so with not arguments it'd be
silverblue-main
but that could be changed tosilverblue-nvidia
or a matrix of silverblue-main and silverblue-nvidia could be built or, like main, a flavor/variant of silverblue, kinoite, vauxite, etc with -nvidia and -main flavors.This skips quite a few lines from ublue-os/main Containerfile as those scripts will already be present.
From an action point of view, build and release will be similar to the actions in main. Something to allow for PR builds / main builds and a release action which builds and uploads an iso whenever the repo is tagged.
README will be geared towards how to customize the newly created ublue-image.
There will need to be a few tweaks and I'd like to propose we finish 38 builds and install plans before completing this and keep 38 forward in mind for this template repo. I think the
ubuntu
repo being moved tobluefin
is a great opportunity to test this new template when that time comes.I'm curious thoughts or other considerations while moving to consensus - thanks!
Beta Was this translation helpful? Give feedback.
All reactions