diff options
author | jade <lix@jade.fyi> | 2024-06-07 03:53:31 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@lix-systems> | 2024-06-07 03:53:31 +0000 |
commit | 4f94531209510c7d580e525a017ea01f18894ded (patch) | |
tree | c5b8e06f73a5fd27ed6afa53a22b9fca145c4638 | |
parent | ec768df0046659e75974919f5923661a29ff52c9 (diff) | |
parent | 611b1de441a54d3ed7781ca0a26b51b6cb9c45cc (diff) |
Merge changes from topic "releng" into main
* changes:
Add meson release note
Move version to a JSON file so we can have release names
Remove rl-next-dev
-rw-r--r-- | .version | 1 | ||||
-rw-r--r-- | doc/manual/rl-next/build-timing-analysis.md (renamed from doc/manual/rl-next-dev/build-timing-analysis.md) | 9 | ||||
-rw-r--r-- | doc/manual/rl-next/meson.md | 15 | ||||
-rw-r--r-- | docker.nix | 2 | ||||
-rw-r--r-- | flake.nix | 10 | ||||
-rw-r--r-- | maintainers/build-release-notes.py | 2 | ||||
-rw-r--r-- | meson.build | 2 | ||||
-rw-r--r-- | misc/pre-commit.nix | 2 | ||||
-rw-r--r-- | nix-support/binary-tarball.nix | 5 | ||||
-rw-r--r-- | package.nix | 5 | ||||
-rw-r--r-- | perl/default.nix | 2 | ||||
-rw-r--r-- | perl/meson.build | 2 | ||||
-rw-r--r-- | version.json | 4 |
13 files changed, 41 insertions, 20 deletions
diff --git a/.version b/.version deleted file mode 100644 index 4004af690..000000000 --- a/.version +++ /dev/null @@ -1 +0,0 @@ -2.90.0 diff --git a/doc/manual/rl-next-dev/build-timing-analysis.md b/doc/manual/rl-next/build-timing-analysis.md index e59f3ca02..1bf803dab 100644 --- a/doc/manual/rl-next-dev/build-timing-analysis.md +++ b/doc/manual/rl-next/build-timing-analysis.md @@ -1,11 +1,13 @@ --- synopsis: Clang build timing analysis cls: 587 +category: Development --- We now have Clang build profiling available, which generates Chrome tracing files for each compilation unit. To enable it, run `meson configure -build -Dprofile-build=enabled` then rerun the compilation. +build -Dprofile-build=enabled` in a Clang stdenv (`nix develop +.#native-clangStdenvPackages`) then rerun the compilation. If you want to make the build go faster, do a clang build with meson, then run `maintainers/buildtime_report.sh build`, then contemplate how to improve the @@ -13,3 +15,8 @@ build time. You can also look at individual object files' traces in <https://ui.perfetto.dev>. + +See [the wiki page][improving-build-times-wiki] for more details on how to do +this. + +[improving-build-times-wiki]: https://wiki.lix.systems/link/8#bkmrk-page-title diff --git a/doc/manual/rl-next/meson.md b/doc/manual/rl-next/meson.md new file mode 100644 index 000000000..f836d192f --- /dev/null +++ b/doc/manual/rl-next/meson.md @@ -0,0 +1,15 @@ +--- +synopsis: Lix is built with meson +# and many more +cls: [580, 627, 628, 707, 711, 712, 719] +credits: [Qyriad, horrors, jade, 9999years, winter] +category: Packaging +--- + +Lix is built exclusively with the meson build system thanks to a huge team-wide +effort, and the legacy `make`/`autoconf` based build system has been removed +altogether. This improves maintainability of Lix, enables things like saving +20% of compile times with precompiled headers, and generally makes the build +less able to produce obscure incremental compilation bugs. + +Non-Nix-based downstream packaging needs rewriting accordingly. diff --git a/docker.nix b/docker.nix index 2d57cd548..cec3a2950 100644 --- a/docker.nix +++ b/docker.nix @@ -1,7 +1,7 @@ { pkgs ? import <nixpkgs> { }, lib ? pkgs.lib, - name ? "nix", + name ? "lix", tag ? "latest", bundleNixpkgs ? true, channelName ? "nixpkgs", @@ -59,7 +59,6 @@ # Set to true to build the release notes for the next release. buildUnreleasedNotes = true; - version = lib.fileContents ./.version + versionSuffix; versionSuffix = if officialRelease then "" @@ -149,8 +148,7 @@ } ); - binaryTarball = - nix: pkgs: pkgs.callPackage ./nix-support/binary-tarball.nix { inherit nix version; }; + binaryTarball = nix: pkgs: pkgs.callPackage ./nix-support/binary-tarball.nix { inherit nix; }; overlayFor = getStdenv: final: prev: @@ -227,7 +225,6 @@ in { user = rl-next-check "rl-next" ./doc/manual/rl-next; - dev = rl-next-check "rl-next-dev" ./doc/manual/rl-next-dev; } ); @@ -309,7 +306,6 @@ perlBindings = self.hydraJobs.perlBindings.${system}; nixpkgsLibTests = self.hydraJobs.tests.nixpkgsLibTests.${system}; rl-next = self.hydraJobs.rl-next.${system}.user; - rl-next-dev = self.hydraJobs.rl-next.${system}.dev; # Will be empty attr set on i686-linux, and filtered out by forAvailableSystems. pre-commit = self.hydraJobs.pre-commit.${system}; } @@ -332,10 +328,10 @@ pkgs = nixpkgsFor.${system}.native; image = import ./docker.nix { inherit pkgs; - tag = version; + tag = pkgs.nix.version; }; in - pkgs.runCommand "docker-image-tarball-${version}" + pkgs.runCommand "docker-image-tarball-${pkgs.nix.version}" { meta.description = "Docker image with Lix for ${system}"; } '' mkdir -p $out/nix-support diff --git a/maintainers/build-release-notes.py b/maintainers/build-release-notes.py index 45d5d6ff9..c8905cde0 100644 --- a/maintainers/build-release-notes.py +++ b/maintainers/build-release-notes.py @@ -1,6 +1,5 @@ from collections import defaultdict import frontmatter -import sys import pathlib import textwrap from typing import Any, Tuple @@ -27,6 +26,7 @@ CATEGORIES = [ 'Improvements', 'Fixes', 'Packaging', + 'Development', 'Miscellany', ] diff --git a/meson.build b/meson.build index 7fd29bdf5..4a42b7a73 100644 --- a/meson.build +++ b/meson.build @@ -39,7 +39,7 @@ # in the build directory. project('lix', 'cpp', - version : run_command('bash', '-c', 'echo -n $(cat ./.version)$VERSION_SUFFIX', check : true).stdout().strip(), + version : run_command('bash', '-c', 'echo -n $(jq -r .version < ./version.json)$VERSION_SUFFIX', check : true).stdout().strip(), default_options : [ 'cpp_std=c++2a', # TODO(Qyriad): increase the warning level diff --git a/misc/pre-commit.nix b/misc/pre-commit.nix index 4f54141b3..292940e83 100644 --- a/misc/pre-commit.nix +++ b/misc/pre-commit.nix @@ -63,7 +63,7 @@ pre-commit-run { files = ''^doc/manual/(change-authors\.yml|rl-next(-dev)?)''; pass_filenames = false; entry = '' - ${lib.getExe pkgs.build-release-notes} --change-authors doc/manual/change-authors.yml doc/manual/rl-next doc/manual/rl-next-dev + ${lib.getExe pkgs.build-release-notes} --change-authors doc/manual/change-authors.yml doc/manual/rl-next ''; }; change-authors-sorted = { diff --git a/nix-support/binary-tarball.nix b/nix-support/binary-tarball.nix index 8d25227c3..7b9bf5c2b 100644 --- a/nix-support/binary-tarball.nix +++ b/nix-support/binary-tarball.nix @@ -3,7 +3,6 @@ cacert, nix, system, - version, }: let installerClosureInfo = buildPackages.closureInfo { @@ -15,10 +14,10 @@ let meta.description = "Distribution-independent Lix bootstrap binaries for ${system}"; in -buildPackages.runCommand "lix-binary-tarball-${version}" { inherit meta; } '' +buildPackages.runCommand "lix-binary-tarball-${nix.version}" { inherit meta; } '' cp ${installerClosureInfo}/registration $TMPDIR/reginfo - dir=lix-${version}-${system} + dir=lix-${nix.version}-${system} fn=$out/$dir.tar.xz mkdir -p $out/nix-support echo "file binary-dist $fn" >> $out/nix-support/hydra-build-products diff --git a/package.nix b/package.nix index d38563eec..3d41ea703 100644 --- a/package.nix +++ b/package.nix @@ -88,7 +88,8 @@ let inherit (lib) fileset; inherit (stdenv) hostPlatform buildPlatform; - version = lib.fileContents ./.version + versionSuffix; + versionJson = builtins.fromJSON (builtins.readFile ./version.json); + version = versionJson.version + versionSuffix; aws-sdk-cpp-nix = aws-sdk-cpp.override { apis = [ @@ -138,7 +139,7 @@ let # that would interfere with repo semantics. baseFiles = fileset.fileFilter (f: f.name != ".gitignore") ./.; - configureFiles = fileset.unions [ ./.version ]; + configureFiles = fileset.unions [ ./version.json ]; topLevelBuildFiles = fileset.unions ([ ./meson.build diff --git a/perl/default.nix b/perl/default.nix index 7ce418402..ed2584c7f 100644 --- a/perl/default.nix +++ b/perl/default.nix @@ -23,7 +23,7 @@ perl.pkgs.toPerlModule ( src = fileset.toSource { root = ../.; fileset = fileset.unions ([ - ../.version + ../version.json ./lib ./meson.build ]); diff --git a/perl/meson.build b/perl/meson.build index 4b179da8f..b542f3e8a 100644 --- a/perl/meson.build +++ b/perl/meson.build @@ -1,5 +1,5 @@ project('lix-perl', 'cpp', - version : run_command('bash', '-c', 'echo -n $(cat ../.version)$VERSION_SUFFIX', check : true).stdout().strip(), + version : run_command('bash', '-c', 'echo -n $(jq -r .version < ../version.json)$VERSION_SUFFIX', check : true).stdout().strip(), default_options : [ 'cpp_std=c++2a', # TODO(Qyriad): increase the warning level diff --git a/version.json b/version.json new file mode 100644 index 000000000..877e7a20b --- /dev/null +++ b/version.json @@ -0,0 +1,4 @@ +{ + "version": "2.90.0", + "release_name": "Vanilla Ice Cream" +} |