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
This commit is contained in:
jade 2024-06-07 03:53:31 +00:00 committed by Gerrit Code Review
commit 4f94531209
13 changed files with 41 additions and 20 deletions

View file

@ -1 +0,0 @@
2.90.0

View file

@ -1,11 +1,13 @@
--- ---
synopsis: Clang build timing analysis synopsis: Clang build timing analysis
cls: 587 cls: 587
category: Development
--- ---
We now have Clang build profiling available, which generates Chrome We now have Clang build profiling available, which generates Chrome
tracing files for each compilation unit. To enable it, run `meson configure 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 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 `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 You can also look at individual object files' traces in
<https://ui.perfetto.dev>. <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

View file

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

View file

@ -1,7 +1,7 @@
{ {
pkgs ? import <nixpkgs> { }, pkgs ? import <nixpkgs> { },
lib ? pkgs.lib, lib ? pkgs.lib,
name ? "nix", name ? "lix",
tag ? "latest", tag ? "latest",
bundleNixpkgs ? true, bundleNixpkgs ? true,
channelName ? "nixpkgs", channelName ? "nixpkgs",

View file

@ -59,7 +59,6 @@
# Set to true to build the release notes for the next release. # Set to true to build the release notes for the next release.
buildUnreleasedNotes = true; buildUnreleasedNotes = true;
version = lib.fileContents ./.version + versionSuffix;
versionSuffix = versionSuffix =
if officialRelease then if officialRelease then
"" ""
@ -149,8 +148,7 @@
} }
); );
binaryTarball = binaryTarball = nix: pkgs: pkgs.callPackage ./nix-support/binary-tarball.nix { inherit nix; };
nix: pkgs: pkgs.callPackage ./nix-support/binary-tarball.nix { inherit nix version; };
overlayFor = overlayFor =
getStdenv: final: prev: getStdenv: final: prev:
@ -227,7 +225,6 @@
in in
{ {
user = rl-next-check "rl-next" ./doc/manual/rl-next; 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}; perlBindings = self.hydraJobs.perlBindings.${system};
nixpkgsLibTests = self.hydraJobs.tests.nixpkgsLibTests.${system}; nixpkgsLibTests = self.hydraJobs.tests.nixpkgsLibTests.${system};
rl-next = self.hydraJobs.rl-next.${system}.user; 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. # Will be empty attr set on i686-linux, and filtered out by forAvailableSystems.
pre-commit = self.hydraJobs.pre-commit.${system}; pre-commit = self.hydraJobs.pre-commit.${system};
} }
@ -332,10 +328,10 @@
pkgs = nixpkgsFor.${system}.native; pkgs = nixpkgsFor.${system}.native;
image = import ./docker.nix { image = import ./docker.nix {
inherit pkgs; inherit pkgs;
tag = version; tag = pkgs.nix.version;
}; };
in in
pkgs.runCommand "docker-image-tarball-${version}" pkgs.runCommand "docker-image-tarball-${pkgs.nix.version}"
{ meta.description = "Docker image with Lix for ${system}"; } { meta.description = "Docker image with Lix for ${system}"; }
'' ''
mkdir -p $out/nix-support mkdir -p $out/nix-support

View file

@ -1,6 +1,5 @@
from collections import defaultdict from collections import defaultdict
import frontmatter import frontmatter
import sys
import pathlib import pathlib
import textwrap import textwrap
from typing import Any, Tuple from typing import Any, Tuple
@ -27,6 +26,7 @@ CATEGORIES = [
'Improvements', 'Improvements',
'Fixes', 'Fixes',
'Packaging', 'Packaging',
'Development',
'Miscellany', 'Miscellany',
] ]

View file

@ -39,7 +39,7 @@
# in the build directory. # in the build directory.
project('lix', 'cpp', 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 : [ default_options : [
'cpp_std=c++2a', 'cpp_std=c++2a',
# TODO(Qyriad): increase the warning level # TODO(Qyriad): increase the warning level

View file

@ -63,7 +63,7 @@ pre-commit-run {
files = ''^doc/manual/(change-authors\.yml|rl-next(-dev)?)''; files = ''^doc/manual/(change-authors\.yml|rl-next(-dev)?)'';
pass_filenames = false; pass_filenames = false;
entry = '' 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 = { change-authors-sorted = {

View file

@ -3,7 +3,6 @@
cacert, cacert,
nix, nix,
system, system,
version,
}: }:
let let
installerClosureInfo = buildPackages.closureInfo { installerClosureInfo = buildPackages.closureInfo {
@ -15,10 +14,10 @@ let
meta.description = "Distribution-independent Lix bootstrap binaries for ${system}"; meta.description = "Distribution-independent Lix bootstrap binaries for ${system}";
in in
buildPackages.runCommand "lix-binary-tarball-${version}" { inherit meta; } '' buildPackages.runCommand "lix-binary-tarball-${nix.version}" { inherit meta; } ''
cp ${installerClosureInfo}/registration $TMPDIR/reginfo cp ${installerClosureInfo}/registration $TMPDIR/reginfo
dir=lix-${version}-${system} dir=lix-${nix.version}-${system}
fn=$out/$dir.tar.xz fn=$out/$dir.tar.xz
mkdir -p $out/nix-support mkdir -p $out/nix-support
echo "file binary-dist $fn" >> $out/nix-support/hydra-build-products echo "file binary-dist $fn" >> $out/nix-support/hydra-build-products

View file

@ -88,7 +88,8 @@ let
inherit (lib) fileset; inherit (lib) fileset;
inherit (stdenv) hostPlatform buildPlatform; 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 { aws-sdk-cpp-nix = aws-sdk-cpp.override {
apis = [ apis = [
@ -138,7 +139,7 @@ let
# that would interfere with repo semantics. # that would interfere with repo semantics.
baseFiles = fileset.fileFilter (f: f.name != ".gitignore") ./.; baseFiles = fileset.fileFilter (f: f.name != ".gitignore") ./.;
configureFiles = fileset.unions [ ./.version ]; configureFiles = fileset.unions [ ./version.json ];
topLevelBuildFiles = fileset.unions ([ topLevelBuildFiles = fileset.unions ([
./meson.build ./meson.build

View file

@ -23,7 +23,7 @@ perl.pkgs.toPerlModule (
src = fileset.toSource { src = fileset.toSource {
root = ../.; root = ../.;
fileset = fileset.unions ([ fileset = fileset.unions ([
../.version ../version.json
./lib ./lib
./meson.build ./meson.build
]); ]);

View file

@ -1,5 +1,5 @@
project('lix-perl', 'cpp', 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 : [ default_options : [
'cpp_std=c++2a', 'cpp_std=c++2a',
# TODO(Qyriad): increase the warning level # TODO(Qyriad): increase the warning level

4
version.json Normal file
View file

@ -0,0 +1,4 @@
{
"version": "2.90.0",
"release_name": "Vanilla Ice Cream"
}