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

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> { },
lib ? pkgs.lib,
name ? "nix",
name ? "lix",
tag ? "latest",
bundleNixpkgs ? true,
channelName ? "nixpkgs",

View file

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

View file

@ -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',
]

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

4
version.json Normal file
View file

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