forked from lix-project/lix
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:
commit
4f94531209
|
@ -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
|
15
doc/manual/rl-next/meson.md
Normal file
15
doc/manual/rl-next/meson.md
Normal 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.
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
pkgs ? import <nixpkgs> { },
|
||||
lib ? pkgs.lib,
|
||||
name ? "nix",
|
||||
name ? "lix",
|
||||
tag ? "latest",
|
||||
bundleNixpkgs ? true,
|
||||
channelName ? "nixpkgs",
|
||||
|
|
10
flake.nix
10
flake.nix
|
@ -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
|
||||
|
|
|
@ -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',
|
||||
]
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -23,7 +23,7 @@ perl.pkgs.toPerlModule (
|
|||
src = fileset.toSource {
|
||||
root = ../.;
|
||||
fileset = fileset.unions ([
|
||||
../.version
|
||||
../version.json
|
||||
./lib
|
||||
./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
|
||||
|
|
4
version.json
Normal file
4
version.json
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"version": "2.90.0",
|
||||
"release_name": "Vanilla Ice Cream"
|
||||
}
|
Loading…
Reference in a new issue