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

@ -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