docs(nixery): dynamically display current nixpkgs commit

People occasionally ask what the current nixpkgs commit is on
nixery.dev (see e.g. https://github.com/tazjin/nixery/issues/153).

With this change, the commit is displayed on nixery.dev if Nixery is
built for the TVL deployment.

Change-Id: I795220214db5a367a126c9b4bd03754e9f144940
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5881
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
This commit is contained in:
Vincent Ambo 2022-06-16 17:52:36 +03:00 committed by clbot
parent 15a9aad658
commit ac10907913
3 changed files with 25 additions and 13 deletions

View file

@ -19,7 +19,7 @@
with pkgs; with pkgs;
let let
inherit (pkgs) buildGoModule; inherit (pkgs) buildGoModule lib;
# Avoid extracting this from git until we have a way to plumb # Avoid extracting this from git until we have a way to plumb
# through revision numbers. # through revision numbers.
@ -33,7 +33,23 @@ depot.nix.readTree.drvTargets rec {
# Use mdBook to build a static asset page which Nixery can then # Use mdBook to build a static asset page which Nixery can then
# serve. This is primarily used for the public instance at # serve. This is primarily used for the public instance at
# nixery.dev. # nixery.dev.
nixery-book = callPackage ./docs { }; #
# If the nixpkgs commit is known, append it to the main docs page.
nixery-book = callPackage ./docs {
postamble = lib.optionalString (pkgs ? nixpkgsCommits.unstable) ''
### Which revision of `nixpkgs` is used for the builds?
The current revision of `nixpkgs` is
[`${pkgs.nixpkgsCommits.unstable}`][commit] from the
`nixos-unstable` channel.
This instance of Nixery uses the `nixpkgs` channel pinned by TVL
in [`//third_party/sources/sources.json`][sources].
[commit]: https://github.com/NixOS/nixpkgs/commit/${pkgs.nixpkgsCommits.unstable}
[sources]: https://code.tvl.fyi/tree/third_party/sources/sources.json
'';
};
nixery-popcount = callPackage ./popcount { }; nixery-popcount = callPackage ./popcount { };

View file

@ -7,7 +7,7 @@
# Some of the documentation is pulled in and included from other # Some of the documentation is pulled in and included from other
# sources. # sources.
{ fetchFromGitHub, mdbook, runCommand, rustPlatform }: { fetchFromGitHub, mdbook, runCommand, rustPlatform, postamble ? "" }:
let let
nix-1p = fetchFromGitHub { nix-1p = fetchFromGitHub {
@ -17,10 +17,14 @@ let
sha256 = "1pf9i90gn98vz67h296w5lnwhssk62dc6pij983dff42dbci7lhj"; sha256 = "1pf9i90gn98vz67h296w5lnwhssk62dc6pij983dff42dbci7lhj";
}; };
in in
runCommand "nixery-book" { } '' runCommand "nixery-book"
{
POSTAMBLE = postamble;
} ''
mkdir -p $out mkdir -p $out
cp -r ${./.}/* . cp -r ${./.}/* .
chmod -R a+w src chmod -R a+w src
cp ${nix-1p}/README.md src/nix-1p.md cp ${nix-1p}/README.md src/nix-1p.md
echo "''${POSTAMBLE}" >> src/nixery.md
${mdbook}/bin/mdbook build -d $out ${mdbook}/bin/mdbook build -d $out
'' ''

View file

@ -34,7 +34,7 @@ meta-package that automatically expands to several other packages.
Meta-packages **must** be the first path component if they are used. Currently Meta-packages **must** be the first path component if they are used. Currently
there are only two meta-packages: there are only two meta-packages:
- `shell`, which provides a `bash`-shell with interactive configuration and - `shell`, which provides a `bash`-shell with interactive configuration and
standard tools like `coreutils`. standard tools like `coreutils`.
- `arm64`, which provides ARM64 binaries. - `arm64`, which provides ARM64 binaries.
@ -53,14 +53,6 @@ Over [on Github][Nixery]. It is licensed under the Apache 2.0 license. Consult
the documentation entries in the sidebar for information on how to set up your the documentation entries in the sidebar for information on how to set up your
own instance of Nixery. own instance of Nixery.
### Which revision of `nixpkgs` is used for the builds?
The instance at `nixery.dev` tracks a recent NixOS channel, currently NixOS
20.09. The channel is updated several times a day.
Private registries might be configured to track a different channel (such as
`nixos-unstable`) or even track a git repository with custom packages.
### Should I depend on `nixery.dev` in production? ### Should I depend on `nixery.dev` in production?
While we appreciate the enthusiasm, if you would like to use Nixery in your While we appreciate the enthusiasm, if you would like to use Nixery in your