-
Notifications
You must be signed in to change notification settings - Fork 54
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
Base for devos #2
Comments
I like the idea and I think it would be really cool, but I do see some potential issues with this. I think @gytis-ivaskevicius direction for this project is fairly different from devos and if we rely on this is as a base it would likely hurt their ability to experiment and solidify this project. It is nice for devos library to be in tree since we still have a long way to go for a stable api, and being able to change library functions and add new features in the same PR/commit is really helpful. But I do love that we have connected these two projects. I think we can all benefit from bouncing ideas off of each other to figure out the best practices. As @nrdxp puts it, the goal is a "community consensus". So I think this issue thread would be a great place to communicate between each other. And eventually decide if we want to incorporate the two somehow, or if we decide not to then at least maintain some collaboration. |
|
Yeah I like the builder too. But I was thinking for devos to instead take a more nixpkgs style approach. Maybe you could pass overlays for devos that override lib functions. Devos 'builders' are blurred because each builder is very unique and does a lot, so I'm not sure builders is the best approach there. Yes I would! Proper home manager support is something I want in devos(we're almost there!). And I have a PR open to add mkHomeConfiguration as a lib function. And a layered approach would be nice and a generic configuration builder would be cool. Perhaps it could be used for the Also we should probably move this discussion to the devos repo, since this issue is more relevant to how devos should work than about flake-utils-plus. |
I think that it would be really cool to collaborate on something like this and I would like to note that I do not see much if any issues with DevOS implementing this particular flake, but that would quite possibly result in code redundancy due to the fact that DevOS strongly enforces file structure and flake-utils-plus leaves it up to the user to decide. Anyways, since you guys piqued my curiosity (And that part of me that wishes to show off Nix superiority :D ) I will spend some time working on my version of DevOS and I guess after that we will compare the results :)
If anyone wishes to reach me - probably the best way to do so is via Discord Also, later today I will create some new branch on this repo in which ill get rid of deprecated code (I left most of the old code there to preserve a smile on early adopters faces), and also I will tweak the existing code structure so it would be easier to customize it and implement in use cases like this one. So if anyone wishes to join in - use that |
Sounds all pretty good!
DevOS strives to also offer a congruent file system layout to a broader community. In a global social sharing model — one of the (social) dimensions of nix superiority — it will be (quite) easier for people to browse over each other's config. On the other hand, I do think that the scattered way it is currently implemented is in need of some abstraction. Or in other words, the FSH needs to be implemented upfront of builders and builders need to become strictly unaware of this concern. @Pacman99 's take already nicely implements this. |
I'd be glad to move forward on this and build off existing solutions rather than try and do everything in house (exactly what I was trying to eliminate with devos in the first place) and I'm well aware of the uninviting complexity that has evolved over time. The main thing I've been pondering lately as well (part of the reason I haven't made any major changes recently) is how to properly reduce it. I'm glad I'm not the only one thinking about this and I'm sure we'd come up with a better solution together. I will probably be fairly short on time for the coming month at least though, so I'm thinking about dishing out write access to large contributors of DevOS to keep the PR's moving. @gytis-ivaskevicius, if you are really willing to use your work and integrate it, I'd be glad to include you in this, as it seems our goals are aligned. |
Finally got around to all this. Just reviewed @Pacman99 PR, looks really nice 👍 divnix/digga#206 (review)
Our goals seem to be aligned, but flake-utils-plus will never beat a custom-built solution like @Pacman99 built since our approach is a little different, here are few core differences:
|
That is a really good comparison and covers my exact opinion on the issue. I don't know if I personally will use flake-utils-plus but I really like the project and I think it is a very positive addition to the nix flakes ecosystem.
analogy probably isn't perfect, but I think it works Devos is some people working together towards a common format(gnome), while flake-utils-plus is more of a simpler library that gives you the tools to create your own format(i3/kde). Even though my PR does attempt to allow you to change the filesystem format, in the end you are still following the devos method of suites/profiles and other devos concepts. |
Nice! Strategically, to meet the "community consensus" goals, anything DevOS does needs to be in a position to be rebased on your work, once that happens. All in all, according to the goals, DevOS' framework-ish parts are better suited to be a value-added instead of an alternative. So let's make sure DevOS is a prime stakeholder of any emerging library implementation, that might "graduate" into
|
I also created a couple of issues, that I think we need to let settle in and evaluate in order to polish the mutual interfaces:
|
Will go over all that later today and maybe ill finally put some work into 1.1.0 release (staging branch). I am a little busy these days but I'm sure ill find some time for it. |
At any rate, take them with a grain of salt. On the API PR that I also linked above, you might find some more context to see where we're currently standing. |
I'll look into it once I get home. I was under impression that DevOS will use purpose-built implementation written by pacman99. |
To be honest, you have already made a good enough api which fits well with our goal. I have a few changes I plan to send as PR's, but I would say those are overall improvements to flake-utils-plus and not even specific to devos. |
Okay, a couple of things:
What exactly would you guys like me to do/work on? |
I realize now that examples are your method of documentation, so I will make sure to update existing PR's before merging.
patching is cool, but overlays usually does the job for most cases. And then there are those instances when you just copy a file from nixpkgs and edit it locally. So I'm not against removing it, but its up to you.
Mine's ParthivS#2050, I think your missing something, that username doesn't exist for me. But go ahead and send me a request.
My brother uses flake-utils-plus, so I just set his
For the |
May I get some sort of update from DevOS side of things as well as some update on |
We are already sketching on first attempts to rebase, I think what currently blocks us is:
Overall good progress and we are in the final round. |
I was looking over devos/lib just now. I really don't understand a lot of it :D (like use-cases of half of those functions) but I am quite confident that flake-utils-plus would like to steal these two specimens: |
Make sure to look at The recImport is an "importer", which could become a flake-utils-plus lib category of its own ("importer"). But there are a couple more. On the other hand that's probably * we should avoid to present the community with equivalent alternatives, since in open source there is no competition in price. And the emergence of equivalent alternatives to do all sorts of things all over the place is what already makes this community a bit hostile to newcomers in the first place. |
Beginning of the project:
The current state of the project:
|
from the other side: divnix/digga#270 |
Since fup is merged in - do you guys think that this should be closed? I guess the same goes for the issue above? |
Immediate goal achieved. |
I'm speaking purely on behalf of myself, but I would find it excitinh if this can be brought into a shape that it will be easy for devos to built upon.
I see the great powers that both projects combined could yield out of flakes and for its users.
I sense devos is at a moment where it would wish to consolidate its library and declare concise and reusable interfaces.
It looks like you (coming from the other end of
flake-utils
) already have gone down that route.Some time ago, I tried to achive something similar myself with numtide/flake-utils#18. But the whole PR and it's shape perfectly reveals where I stand in terms of nix-skills 😉
So I would love to see a good bunch of collaboration striving for getting this and devos, both in a shape where devos could adopt / inherit this library without braking any features.
I think for devos it would be good / convenient, until reaching 1.0 to have such a well-defined (and well-guarded) library in-tree.
@gytis-ivaskevicius what do you think?
@nrdxp what do you think?
@Pacman99 what do you think?
The text was updated successfully, but these errors were encountered: