From 5151380d61c30851ffabe29b45213af5ec981e65 Mon Sep 17 00:00:00 2001 From: Pacman99 Date: Sun, 16 May 2021 10:22:40 -0700 Subject: [PATCH 1/9] default.nix: fix path to compat --- default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/default.nix b/default.nix index 5d437c7..0e6bdee 100644 --- a/default.nix +++ b/default.nix @@ -1,7 +1,7 @@ let inherit (default.inputs.nixos) lib; - default = (import "${./lib}/compat").defaultNix; + default = (import ./lib/compat).defaultNix; ciSystems = [ "aarch64-linux" From 18d4c78ea5ae926284636d068692c9b23e33caeb Mon Sep 17 00:00:00 2001 From: Pacman99 Date: Sun, 16 May 2021 19:35:52 -0700 Subject: [PATCH 2/9] flake: un-comment defaultTemplate This was accidentally commented. fixes #288 --- flake.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flake.nix b/flake.nix index 535c717..27024b0 100644 --- a/flake.nix +++ b/flake.nix @@ -88,7 +88,7 @@ deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations { }; - #defaultTemplate = self.templates.flk; + defaultTemplate = self.templates.flk; templates.flk.path = ./.; templates.flk.description = "flk template"; From cf47170d6f703906aa546dfee29f2083701a82ef Mon Sep 17 00:00:00 2001 From: Narice Date: Mon, 17 May 2021 10:46:02 +0200 Subject: [PATCH 3/9] Modified wording of iso documentation --- doc/start/iso.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/start/iso.md b/doc/start/iso.md index 5a0ecf3..efa515a 100644 --- a/doc/start/iso.md +++ b/doc/start/iso.md @@ -12,13 +12,13 @@ This works for any file matching `hosts/*.nix` excluding `default.nix`. ## ISO image nix store & cache -The iso image holds the store to the live environment and _also_ acts as a binay cache +The iso image holds the store to the live environment and _also_ acts as a binary cache to the installer. To considerably speed up things, the image already includes all flake `inputs` as well as the `devshell` closures. -While you _could_ provision any machine with a single stick, a bespoke iso maximises -those local cache hits. +While you _could_ provision any machine with a single stick, a custom-made iso for +the host you want to install DevOS to, maximises those local cache hits. -For hosts that don't differ too much, a common usb stick might be ok, whereas when -there are bigger differences, a bespoke usb stick will be considerably faster. +For hosts that don't differ too much, a single usb stick might be ok, whereas when +there are bigger differences, a custom-made usb stick will be considerably faster. From 629a50975fab9e85aefa5c43a13ed55c48555339 Mon Sep 17 00:00:00 2001 From: Yannick Markus Date: Tue, 18 May 2021 18:11:29 +0200 Subject: [PATCH 4/9] hosts doc: fix hardware module in example --- doc/concepts/hosts.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/concepts/hosts.md b/doc/concepts/hosts.md index 1fa9028..b8cc849 100644 --- a/doc/concepts/hosts.md +++ b/doc/concepts/hosts.md @@ -38,7 +38,7 @@ flake.nix: { librem = { channelName = "latest"; - modules = [ hardware.purism-librem-13v3 ]; + modules = [ nixos-hardware.nixosModules.purism-librem-13v3 ]; }; } ]; From 564888d1fef8ff4b664a3be862d43eb2fef13159 Mon Sep 17 00:00:00 2001 From: Yannick Markus Date: Tue, 18 May 2021 18:12:36 +0200 Subject: [PATCH 5/9] remove profiles/suites.nix --- profiles/suites.nix | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 profiles/suites.nix diff --git a/profiles/suites.nix b/profiles/suites.nix deleted file mode 100644 index eadb20c..0000000 --- a/profiles/suites.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ users, profiles, userProfiles, ... }: - -{ - system = with profiles; rec { - base = [ core users.nixos users.root ]; - }; - user = with userProfiles; rec { - base = [ direnv git ]; - }; -} From adaf76e1fbd592d933149128f26d61a02f96a2c9 Mon Sep 17 00:00:00 2001 From: Pacman99 Date: Tue, 18 May 2021 10:23:43 -0700 Subject: [PATCH 6/9] doc/hosts: update to new auto-import style --- doc/concepts/hosts.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/concepts/hosts.md b/doc/concepts/hosts.md index b8cc849..37130f3 100644 --- a/doc/concepts/hosts.md +++ b/doc/concepts/hosts.md @@ -33,15 +33,15 @@ that you intend to use on your machine. flake.nix: ```nix { - nixos.hosts = mkMerge [ - (devos.lib.importHosts ./hosts) - { + nixos = { + imports = [ (devos.lib.importHosts ./hosts) ]; + hosts = { librem = { channelName = "latest"; modules = [ nixos-hardware.nixosModules.purism-librem-13v3 ]; }; - } - ]; + }; + }; } ``` From 21cba8024d0c26df0c999b1e92651f4086d372c1 Mon Sep 17 00:00:00 2001 From: Pacman99 Date: Tue, 18 May 2021 11:29:56 -0700 Subject: [PATCH 7/9] flake: update digga input no longer builds all packages from overlays in devShell --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 5dd2560..b082071 100644 --- a/flake.lock +++ b/flake.lock @@ -93,11 +93,11 @@ "utils": "utils_2" }, "locked": { - "lastModified": 1621048725, - "narHash": "sha256-LVQOLO56xuBAlElxikU3Qvw1BMB3914HN+QePls0yl0=", + "lastModified": 1621354376, + "narHash": "sha256-b597Jj8B1Nq4NX/Gl/+bYGKqJxpSfUtr1Nmp9m1DND8=", "owner": "divnix", "repo": "digga", - "rev": "04c4bdd1d1449168307d6262631466d59b9ed3bd", + "rev": "5ef9b8cabbc10c9b4fe5534107224c7241c63b3d", "type": "github" }, "original": { From a81930af36be9f78484ce16e95409f4f56064f93 Mon Sep 17 00:00:00 2001 From: David Arnold Date: Wed, 19 May 2021 20:15:49 -0400 Subject: [PATCH 8/9] readme: declare it beta and update some other things --- README.md | 60 ++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 46 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index ef7ed23..f347f4a 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ > maturing _well_ [for a while](https://github.com/divnix/devos/tree/17713c22d07c54525c728c62060a0428b76dee3b). # Introduction -DevOS grants a simple way to use, deploy and manage [NixOS][nixos] systems for -personal and productive use. A sane repository structure is provided, +DevOS grants a simple template to use, deploy and manage [NixOS][nixos] systems +for personal and productive use. A sane repository structure is provided, integrating several popular projects like [home-manager][home-manager], [devshell][devshell], and [more](./doc/integrations). @@ -21,14 +21,17 @@ a [flake centric][flake-doc] approach is taken for useful conveniences such as Skip the indeterminate nature of other systems, _and_ the perceived tedium of bootstrapping Nix. It's easier than you think! -### Status: Alpha -A lot of the implementation is less than perfect, and huge -[redesigns](https://github.com/divnix/devos/issues/152) _will_ happen. There -are unstable versions (0._x_._x_) to help users keep track of changes and -progress. +### Status: Beta +Although this project has already matured quite a bit, especially through +recent outfactoring of [`digga`][digga], a fair amount of api polishing is still +expected. There are unstable versions (0._x_._x_) to help users keep track +of changes and progress. ## Getting Started Check out the [guide](https://devos.divnix.com/start) to get up and running. +Also, have a look at [_flake.nix_][toc]. If anything is not immediately +discoverable from there through [`digga`][digga] library's [`mkFlake`][mk-flake], +please file a bug report. ## In the Wild The author maintains his own branch, so you can take inspiration, direction, or @@ -43,12 +46,6 @@ and its satellite projects, from which best practices can evolve. ___The future is declarative! 🎉___ -## Upstream -I'd love to see this in the nix-community should anyone believe its reached a -point of maturity to be generally useful, but I'm all for waiting until -1.0[#121](https://github.com/divnix/devos/issues/121) to save the cache work, -too. - ## Community Profiles There are two branches from which to choose: [core][core] and [community][community]. The community branch builds on core and includes @@ -60,6 +57,22 @@ without building anything. This is especially useful for the packages that are [overridden](./concepts/overrides.md) from master, as without the cache, rebuilds are quite frequent. +## Shoulders +This work does not reinvent the wheel. It stands on the [shoulders of the +following giants][giants]: + +### :onion: — like the layers of an onion +- [`divnix/digga`][digga] +- [`gytis-ivaskevicius/flake-utils-plus`][fup] +- [`numtide/flake-utils`][fu] + +### :family: — like family +- [`numtide/devshell`][devshell] +- [`serokell/deploy-rs`][deploy] +- [`NixOS/nixpkgs`][nixpkgs] + +:heart: + ## Inspiration & Art - [hlissner/dotfiles][dotfiles] - [nix-user-chroot](https://github.com/nix-community/nix-user-chroot) @@ -67,9 +80,29 @@ rebuilds are quite frequent. - [Awesome Nix](https://github.com/nix-community/awesome-nix) - [devshell](https://github.com/numtide/devshell) +## Divnix +The divnix org is an open space that spontaniously formed out of "the Nix". +It is really just a place where otherwise unrelated people a) get +together and b) stuff done. + +It's a place to stop "geeking out in isolation" (or within company boundaries), +experiment and learn together and iterate quickly on best practices. That's what it is. + +It might eventually become a non-profit if that's not too complicated or if those +goals are sufficiently upstreamed into "the Nix", dissolved. + # License DevOS is licensed under the [MIT License][mit]. +[mk-flake]: https://github.com/divnix/digga/tree/master/src/mkFlake +[nixpkgs]: https://github.com/NixOS/nixpkgs +[deploy]: https://github.com/serokell/deploy-rs +[toc]: https://github.com/divnix/devos/blob/core/flake.nix +[giants]: https://en.wikipedia.org/wiki/Standing_on_the_shoulders_of_giants +[digga]: https://github.com/divnix/digga +[fup]: https://github.com/gytis-ivaskevicius/flake-utils-plus +[fu]: https://github.com/numtide/flake-utils +[devshell]: https://github.com/numtide/devshell [nix]: https://nixos.org/manual/nix/stable [mit]: https://mit-license.org [nixos]: https://nixos.org/manual/nixos/stable @@ -79,5 +112,4 @@ DevOS is licensed under the [MIT License][mit]. [core]: https://github.com/divnix/devos [community]: https://github.com/divnix/devos/tree/community [dotfiles]: https://github.com/hlissner/dotfiles -[devshell]: https://github.com/numtide/devshell [please]: https://github.com/nrdxp/devos/tree/nrd From 20649fb3a9861734ff1507144499dff1083f85d1 Mon Sep 17 00:00:00 2001 From: Narice Date: Mon, 24 May 2021 10:28:52 +0200 Subject: [PATCH 9/9] Added note about cache in the start index This resolves #292. --- doc/start/index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/start/index.md b/doc/start/index.md index 1cc252b..fbfab09 100644 --- a/doc/start/index.md +++ b/doc/start/index.md @@ -31,6 +31,8 @@ In addition, the [binary cache](../integrations/cachix.md) is added for faster d > files before building the system. > - You can choose to simply clone the repo with git if you want to follow > upstream changes. +> - If the `nix-shell -p cachix --run "cachix use nrdxp"` line doesn't work +> you can try with sudo: `sudo nix-shell -p cachix --run "cachix use nrdxp"` ## Next Steps: - [Make installable ISO](./iso.md)