Merge pull request 'doc: update tag and version from 2.90-beta1 to 2.90.0-rc1' (#29) from drupol/lix-website:lix-bump-tag-june-2024 into main

Reviewed-on: lix-project/lix-website#29
This commit is contained in:
jade 2024-06-20 06:54:15 +00:00
commit 2c4e1b905f
2 changed files with 97 additions and 42 deletions

View file

@ -5,9 +5,54 @@ date: "2024-04-27"
author: "Lix Team" author: "Lix Team"
--- ---
If you have an existing configuration on **NixOS** or **nix-darwin**, the easiest way If you have an existing configuration on **NixOS** or **nix-darwin**, there are
to switch to Lix is currently by using our provided _NixOS module_. Fortunately, this a couple of ways to switch to Lix, all of which are relatively easy.
usually means adding only a couple of lines to your configuration.
- Using Lix from nixpkgs:
- Potentially slightly older version of Lix
- Working binary caching
- Programs like nix-eval-jobs and colmena still use the default version of
Nix (may be unacceptable depending on your use case)
- Using the Lix NixOS module:
- Fresh version of Lix right out of the freezer
- You will be compiling Lix yourself, for now at least
- Programs like nix-eval-jobs and colmena have the version of Nix they use
overridden by an overlay such that most of the system uses Lix.
# Using Lix from nixpkgs
This approach has some caveats: since it is not using an overlay, it does not
set the version of Nix depended on by other tools like colmena or
nix-eval-jobs. Consequently, those tools will be using whichever version of
CppNix is default in nixpkgs, likely leading to an inconsistent experience. It
is, however, easy, and it does not take the few minutes to compile Lix from
source.
Add the following code to your NixOS configuration:
```nix
{ pkgs, ... }:
{
nix.package = pkgs.lix;
}
```
That's it, you're done.
You can verify that it works by running the following command:
```sh
$ nix --version
nix (Lix, like Nix) 2.90.0-rc1
```
# Using the Lix NixOS module
The Lix NixOS module is the way to get the most consistent experience using
Lix, and to have a system that has Lix as the default Nix implementation
wherever possible by using an overlay to replace `pkgs.nix`. It will result in
building Lix from source, which takes a few minutes on every update, which is a
perfect time to get up, get some water, and stretch for a bit.
## Flake-based Configurations ## Flake-based Configurations
@ -20,15 +65,10 @@ Adding Lix to a flake-based configuration is relatively simple. First, add the L
# Add this section to your flake inputs! # Add this section to your flake inputs!
# #
# Note that this assumes you have a flake-input called nixpkgs, # Note that this assumes you have a flake-input called nixpkgs,
# which is often the case. If you've named it something else, # which is often the case. If you've named it something else,
# you'll need to change the `nixpkgs` below. # you'll need to change the `nixpkgs` below.
lix = {
url = "git+https://git.lix.systems/lix-project/lix?ref=refs/tags/2.90-beta.1";
flake = false;
};
lix-module = { lix-module = {
url = "git+https://git.lix.systems/lix-project/nixos-module"; url = "https://git.lix.systems/lix-project/nixos-module/archive/2.90.0-rc1.tar.gz";
inputs.lix.follows = "lix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
@ -78,7 +118,12 @@ Add the Lix _NixOS Module_ to your configuration:
} }
``` ```
Finally, if you'd prefer not to build Lix yourself, you can add our binary cache. <!--
FIXME: the binary cache doesn't do much good given that everyone is running a
different nixpkgs than Lix is actually cached with during the release process.
We need a hydra to be able to fix that.
Finally, if you'd prefer not to build Lix yourself, you can add our binary cache.
Add the following to any NixOS module in your configuration (e.g. `configuration.nix`): Add the following to any NixOS module in your configuration (e.g. `configuration.nix`):
```nix ```nix
@ -93,12 +138,14 @@ Add the following to any NixOS module in your configuration (e.g. `configuration
} }
``` ```
-->
Rebuild and switch into your new system (either using `nixos-rebuild` or `darwin-rebuild`). Rebuild and switch into your new system (either using `nixos-rebuild` or `darwin-rebuild`).
You should now be using Lix! You can verify this by asking the `nix` command to report its version: You should now be using Lix! You can verify this by asking the `nix` command to report its version:
```sh ```sh
$ nix --version $ nix --version
nix (Lix, like Nix) 2.90.0-beta.1 nix (Lix, like Nix) 2.90.0-rc1
``` ```
As long as you see `Lix` in the output, you're good! If you're not sure what to do now, it's a As long as you see `Lix` in the output, you're good! If you're not sure what to do now, it's a
@ -111,13 +158,7 @@ If you're not using flakes, you can set up your configuration to automatically p
Lix release tarball, and then add it to your `configuration.nix`. Lix release tarball, and then add it to your `configuration.nix`.
Open your `/etc/nixos/configuration.nix` in the editor of your choice. Find the `imports` Open your `/etc/nixos/configuration.nix` in the editor of your choice. Find the `imports`
section, and add the line provided in the configuration section, and add the line provided in the configuration
<mark>
<b>This section is currently pending on a quick update.</b>
</mark>
<br/>
<br/>
```nix ```nix
{ config, lib, pkgs, ... }: { config, lib, pkgs, ... }:
@ -126,20 +167,30 @@ section, and add the line provided in the configuration
[ # Include the results of the hardware scan. [ # Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
# This is the core line -- it pulls down the Lix module and # This includes the Lix NixOS module in your configuration along with the
# includes it in your configuration. It looks much nicer with a let # matching version of Lix itself.
# binding -- but for clarity, we'll leave that as an exercise for the #
# reader. :) # The sha256 hashes were obtained with the following command in Lix (n.b.
# this relies on --unpack, which is only in Lix and CppNix > 2.18):
# nix store prefetch-file --name source --unpack https://git.lix.systems/lix-project/lix/archive/2.90.0-rc1.tar.gz
# #
# Note that the tag (e.g. v2.90) in the URL here is what determines # Note that the tag (e.g. v2.90) in the URL here is what determines
# which version of Lix you'll wind up with. # which version of Lix you'll wind up with.
(import (let
( module = fetchTarball {
(fetchTarball { url = "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz"; }) + "/module.nix" name = "source";
) url = "https://git.lix.systems/lix-project/nixos-module/archive/2.90.0-rc1.tar.gz";
{ sha256 = "sha256-64lB/NO6AQ6z6EDCemPSYZWX/Qc6Rt04cPia5T5v01g=";
lix = fetchTarball { url = "https://git.lix.systems/lix-project/lix/archive/2.90-beta.1.tar.gz"; }; };
} lixSrc = fetchTarball {
name = "source";
url = "https://git.lix.systems/lix-project/lix/archive/2.90.0-rc1.tar.gz";
sha256 = "sha256-WY7BGnu5PnbK4O8cKKv9kvxwzZIGbIQUQLGPHFXitI0=";
};
# This is the core of the code you need; it is an exercise to the
# reader to write the sources in a nicer way, or by using npins or
# similar pinning tools.
in import "${module}/module.nix" { lix = lixSrc; }
) )
]; ];
@ -147,7 +198,10 @@ section, and add the line provided in the configuration
} }
``` ```
Finally, if you'd prefer not to build Lix yourself, you can add our binary cache. <!--
FIXME: as above, doesn't work, we should not recommend it.
Finally, if you'd prefer not to build Lix yourself, you can add our binary cache.
Add the following to any NixOS module in your configuration (e.g. `configuration.nix`): Add the following to any NixOS module in your configuration (e.g. `configuration.nix`):
```nix ```nix
@ -161,13 +215,14 @@ Add the following to any NixOS module in your configuration (e.g. `configuration
]; ];
} }
``` ```
-->
Rebuild and switch into your new system (either using `nixos-rebuild` or `darwin-rebuild`). Rebuild and switch into your new system (either using `nixos-rebuild` or `darwin-rebuild`).
You should now be using Lix! You can verify this by asking the `nix` command to report its version: You should now be using Lix! You can verify this by asking the `nix` command to report its version:
```sh ```sh
$ nix --version $ nix --version
nix (Lix, like Nix) 2.90.0-beta.1 nix (Lix, like Nix) 2.90.0-rc1-lixpre20240615-253546d
``` ```
As long as you see `Lix` in the output, you're good! If you're not sure what to do now, it's a As long as you see `Lix` in the output, you're good! If you're not sure what to do now, it's a
@ -175,8 +230,8 @@ great time to check out some of the [community's resources on Nix](/resources).
## Having Trouble? ## Having Trouble?
**One quick thing to check:** have you set `nix.package` anywhere in your configuration? **One quick thing to check:** have you set `nix.package` anywhere in your configuration?
If so, your configuration option will override the Lix module. You'll want to remove it, first -- If so, your configuration option will override the Lix module. You'll want to remove it, first --
or, if you're feeling savvy, point it to the provided Lix package. or, if you're feeling savvy, point it to the provided Lix package.
**Otherwise:** If you're having difficulty installing Lix, don't panic! Hop on over to our **Otherwise:** If you're having difficulty installing Lix, don't panic! Hop on over to our

View file

@ -8,7 +8,7 @@ author: "Lix Team"
Whether you're a new or returning user, **we're thrilled you've decided to pick up Lix!** Whether you're a new or returning user, **we're thrilled you've decided to pick up Lix!**
Lix works out-of-the-box on most Linux and MacOS systems, including with system management tools Lix works out-of-the-box on most Linux and MacOS systems, including with system management tools
such as [home-manager](https://github.com/nix-community/home-manager) and such as [home-manager](https://github.com/nix-community/home-manager) and
[nix-darwin](https://github.com/LnL7/nix-darwin) -- but, like any Nix-based system, some Nix background [nix-darwin](https://github.com/LnL7/nix-darwin) -- but, like any Nix-based system, some Nix background
knowledge is recommended before installation. knowledge is recommended before installation.
@ -18,9 +18,9 @@ first, to get familiar with how Nix works.
## On NixOS ## On NixOS
If you haven't already installed NixOS, do so using any upstream If you haven't already installed NixOS, do so using any upstream
[install image](https://nixos.org/download/#NixOS) and the instructions in the [install image](https://nixos.org/download/#NixOS) and the instructions in the
[NixOS Manual](https://nixos.org/manual/nixos/stable/#sec-installation). Then, follow [NixOS Manual](https://nixos.org/manual/nixos/stable/#sec-installation). Then, follow
the instructions for either: the instructions for either:
- [flake-based configurations](/add-to-config#flake-based-configurations); or - [flake-based configurations](/add-to-config#flake-based-configurations); or
@ -43,7 +43,7 @@ depending on how you prefer to configure your system.
## On Any Other Linux/MacOS System ## On Any Other Linux/MacOS System
You can either perform a **new install**, or choose to You can either perform a **new install**, or choose to
**upgrade an existing install** to Lix. **upgrade an existing install** to Lix.
### New Installs ### New Installs
@ -55,7 +55,7 @@ Open a terminal, and run the following command:
curl -sSf -L https://install.lix.systems/lix | sh -s -- install curl -sSf -L https://install.lix.systems/lix | sh -s -- install
``` ```
The installer will guide you through installing Lix -- and once it's finished, The installer will guide you through installing Lix -- and once it's finished,
you'll have a full, working installation. If you're not sure what to do, now is a you'll have a full, working installation. If you're not sure what to do, now is a
great time to check out some of the [community's resources on Nix](/resources). great time to check out some of the [community's resources on Nix](/resources).
@ -72,7 +72,7 @@ Thanks to Nix, we can actually ask Lix to upgrade your system directly. Run the
sudo --preserve-env=PATH nix run \ sudo --preserve-env=PATH nix run \
--experimental-features "nix-command flakes" \ --experimental-features "nix-command flakes" \
--extra-substituters https://cache.lix.systems --extra-trusted-public-keys "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" \ --extra-substituters https://cache.lix.systems --extra-trusted-public-keys "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" \
'git+https://git@git.lix.systems/lix-project/lix?ref=refs/tags/2.90-beta.1' -- \ 'git+https://git@git.lix.systems/lix-project/lix?ref=refs/tags/2.90.0-rc1' -- \
upgrade-nix \ upgrade-nix \
--extra-substituters https://cache.lix.systems --extra-trusted-public-keys "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" --extra-substituters https://cache.lix.systems --extra-trusted-public-keys "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o="
``` ```
@ -82,7 +82,7 @@ to report its version:
```sh ```sh
$ nix --version $ nix --version
nix (Lix, like Nix) 2.90.0-beta.1 nix (Lix, like Nix) 2.90.0-rc1-lixpre20240615-253546d
``` ```
As long as you see `Lix` in the output, you're good! If you're not sure what to do now, it's a As long as you see `Lix` in the output, you're good! If you're not sure what to do now, it's a