forked from lix-project/lix
Compare commits
3 commits
2eac435bc7
...
8914953e2e
Author | SHA1 | Date | |
---|---|---|---|
|
8914953e2e | ||
|
ae0bb8e5e6 | ||
|
576b28bce1 |
|
@ -3,10 +3,6 @@
|
||||||
#
|
#
|
||||||
# It's used for crediting people accurately in release notes. The release notes
|
# It's used for crediting people accurately in release notes. The release notes
|
||||||
# script will link to forgejo, then to GitHub if forgejo is not present.
|
# script will link to forgejo, then to GitHub if forgejo is not present.
|
||||||
#
|
|
||||||
# When adding someone from outside the Lix project, you generally want to simply link their GitHub profile without adding a display name unless they are well-known in the community by that display name.
|
|
||||||
#
|
|
||||||
# See doc/manual/src/contributing/hacking.md for more documentation on this file's format and typical usage.
|
|
||||||
9999years:
|
9999years:
|
||||||
display_name: wiggles
|
display_name: wiggles
|
||||||
forgejo: rbt
|
forgejo: rbt
|
||||||
|
|
|
@ -168,26 +168,8 @@ or for Nix with the [`flakes`] and [`nix-command`] experimental features enabled
|
||||||
$ nix build .#packages.aarch64-linux.default
|
$ nix build .#packages.aarch64-linux.default
|
||||||
```
|
```
|
||||||
|
|
||||||
### Cross compiling using the Lix flake
|
Cross-compiled builds are available for ARMv6 (`armv6l-linux`) and ARMv7 (`armv7l-linux`).
|
||||||
|
Add more [system types](#system-type) to `crossSystems` in `flake.nix` to bootstrap Nix on unsupported platforms.
|
||||||
Lix can also be easily cross compiled to the following arbitrarily-chosen system doubles, which can be useful for bootstrapping Lix on new platforms.
|
|
||||||
These are specified in `crossSystems` in `flake.nix`; feel free to submit changes to add new ones if they are useful to you.
|
|
||||||
|
|
||||||
- `armv6l-linux`
|
|
||||||
- `armv7l-linux`
|
|
||||||
- `riscv64-linux`
|
|
||||||
|
|
||||||
For example, to cross-compile Lix for `armv6l-linux` from another Linux, use the following:
|
|
||||||
|
|
||||||
```console
|
|
||||||
$ nix build .#nix-armv6l-linux
|
|
||||||
```
|
|
||||||
|
|
||||||
It's also possible to cross-compile a tarball of binaries suitable for the Lix installer, for example, for `riscv64-linux`:
|
|
||||||
|
|
||||||
```console
|
|
||||||
$ nix build .#nix-riscv64-linux.passthru.binaryTarball
|
|
||||||
```
|
|
||||||
|
|
||||||
### Building for multiple platforms at once
|
### Building for multiple platforms at once
|
||||||
|
|
||||||
|
@ -300,8 +282,9 @@ Regular markdown files used for the manual have a base path of their own and the
|
||||||
|
|
||||||
## API documentation
|
## API documentation
|
||||||
|
|
||||||
Doxygen API documentation will be available online in the future ([tracking issue](https://git.lix.systems/lix-project/lix/issues/422)).
|
Doxygen API documentation is [available
|
||||||
You can also build and view it yourself:
|
online](https://hydra.nixos.org/job/nix/master/internal-api-docs/latest/download-by-type/doc/internal-api-docs). You
|
||||||
|
can also build and view it yourself:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
# nix build .#hydraJobs.internal-api-docs
|
# nix build .#hydraJobs.internal-api-docs
|
||||||
|
@ -311,50 +294,44 @@ You can also build and view it yourself:
|
||||||
or inside a `nix develop` shell by running:
|
or inside a `nix develop` shell by running:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
$ meson configure build -Dinternal-api-docs=enabled
|
|
||||||
$ meson compile -C build internal-api-docs
|
$ meson compile -C build internal-api-docs
|
||||||
$ xdg-open ./outputs/doc/share/doc/nix/internal-api/html/index.html
|
$ xdg-open ./outputs/doc/share/doc/nix/internal-api/html/index.html
|
||||||
```
|
```
|
||||||
|
|
||||||
## Coverage analysis
|
## Coverage analysis
|
||||||
|
|
||||||
A coverage analysis report will be available online in the future (FIXME(lix-hydra)).
|
A coverage analysis report is [available
|
||||||
You can build it yourself:
|
online](https://hydra.nixos.org/job/nix/master/coverage/latest/download-by-type/report/coverage). You
|
||||||
|
can build it yourself:
|
||||||
|
|
||||||
```
|
```
|
||||||
# nix build .#hydraJobs.coverage
|
# nix build .#hydraJobs.coverage
|
||||||
# xdg-open ./result/coverage/index.html
|
# xdg-open ./result/coverage/index.html
|
||||||
```
|
```
|
||||||
|
|
||||||
Metrics about the change in line/function coverage over time will be available in the future (FIXME(lix-hydra)).
|
Metrics about the change in line/function coverage over time are also
|
||||||
|
[available](https://hydra.nixos.org/job/nix/master/coverage#tabs-charts).
|
||||||
|
|
||||||
## Add a release note
|
## Add a release note
|
||||||
|
|
||||||
`doc/manual/rl-next` contains release notes entries for all unreleased changes.
|
`doc/manual/rl-next` contains release notes entries for all unreleased changes.
|
||||||
|
|
||||||
User-visible changes should come with a release note.
|
User-visible changes should come with a release note.
|
||||||
Developer-facing changes should have a release note in the Development category if they are significant and if developers should know about them.
|
|
||||||
|
|
||||||
### Add an entry
|
### Add an entry
|
||||||
|
|
||||||
Here's what a complete entry looks like.
|
Here's what a complete entry looks like. The file name is not incorporated in the document.
|
||||||
The file name is not incorporated in the final document, and is generally a super brief summary of the change synopsis.
|
|
||||||
|
|
||||||
```markdown
|
```
|
||||||
---
|
---
|
||||||
synopsis: Basically a title
|
synopsis: Basically a title
|
||||||
# 1234 or gh#1234 will refer to CppNix GitHub, fj#1234 will refer to a Lix forgejo issue.
|
# 1234 or gh#1234 will refer to CppNix GitHub, fj#1234 will refer to a Lix forgejo issue.
|
||||||
issues: [1234, fj#1234]
|
issues: [1234, fj#1234]
|
||||||
# Use this *only* if there is a CppNix pull request associated with this change.
|
# Use this *only* if there is a CppNix pull request associated with this change
|
||||||
prs: 1238
|
prs: 1238
|
||||||
# List of Lix Gerrit changelist numbers.
|
# List of Lix Gerrit changelist numbers; if there is an associated Lix GitHub
|
||||||
# If there is an associated Lix GitHub PR, just put in the Gerrit CL number.
|
# PR, just put in the Gerrit CL number.
|
||||||
cls: [123]
|
cls: [123]
|
||||||
# Heading that this release note will appear under.
|
|
||||||
category: Breaking Changes
|
|
||||||
# Add a credit mention in the bottom of the release note.
|
|
||||||
# your-name is used as a key into doc/manual/change-authors.yml for metadata
|
|
||||||
credits: [your-name]
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Here's one or more paragraphs that describe the change.
|
Here's one or more paragraphs that describe the change.
|
||||||
|
@ -369,31 +346,6 @@ Significant changes should add the following header, which moves them to the top
|
||||||
significance: significant
|
significance: significant
|
||||||
```
|
```
|
||||||
|
|
||||||
The following categories of release notes are supported (see `maintainers/build-release-notes.py`):
|
|
||||||
- Breaking Changes
|
|
||||||
- Features
|
|
||||||
- Improvements
|
|
||||||
- Fixes
|
|
||||||
- Packaging
|
|
||||||
- Development
|
|
||||||
- Miscellany
|
|
||||||
|
|
||||||
The `credits` field, if present, gives credit to the author of the patch in the release notes with a message like "Many thanks to (your-name) for this" and linking to GitHub or Forgejo profiles if listed.
|
|
||||||
|
|
||||||
If you are forward-porting a change from CppNix, please credit the original author, and optionally credit yourself.
|
|
||||||
When adding credits metadata for people external to the project and deciding whether to put in a `display_name`, consider what they are generally known as in the community; even if you know their full name (e.g. from their GitHub profile), we suggest only adding it as a display name if that is what they go by in the community.
|
|
||||||
There are multiple reasons we follow this practice, but it boils down to privacy and consent: we would rather not capture full names that are not widely used in the community without the consent of the parties involved, even if they are publicly available.
|
|
||||||
As of this writing, the entries with full names as `display_name` are either members of the CppNix team or people who added them themselves.
|
|
||||||
|
|
||||||
The names specified in `credits` are used as keys to look up the authorship info in `doc/manual/change-authors.yml`.
|
|
||||||
The only mandatory part is that every key appearing in `credits` has an entry present in `change-authors.yml`.
|
|
||||||
All of the following properties are optional; you can specify `{}` as the metadata if you want a simple non-hyperlinked mention.
|
|
||||||
The following properties are supported:
|
|
||||||
|
|
||||||
- `display_name`: display name used in place of the key when showing names, if present.
|
|
||||||
- `forgejo`: Forgejo username. The name in the release notes will be a link to this, if present.
|
|
||||||
- `github`: GitHub username, used if `forgejo` is not set, again making a link.
|
|
||||||
|
|
||||||
### Build process
|
### Build process
|
||||||
|
|
||||||
Releases have a precomputed `rl-MAJOR.MINOR.md`, and no `rl-next.md`.
|
Releases have a precomputed `rl-MAJOR.MINOR.md`, and no `rl-next.md`.
|
||||||
|
|
11
flake.nix
11
flake.nix
|
@ -84,8 +84,6 @@
|
||||||
];
|
];
|
||||||
systems = linuxSystems ++ darwinSystems;
|
systems = linuxSystems ++ darwinSystems;
|
||||||
|
|
||||||
# If you add something here, please update the list in doc/manual/src/contributing/hacking.md.
|
|
||||||
# Thanks~
|
|
||||||
crossSystems = [
|
crossSystems = [
|
||||||
"armv6l-linux"
|
"armv6l-linux"
|
||||||
"armv7l-linux"
|
"armv7l-linux"
|
||||||
|
@ -198,19 +196,16 @@
|
||||||
busybox-sandbox-shell = final.busybox-sandbox-shell or final.default-busybox-sandbox-shell;
|
busybox-sandbox-shell = final.busybox-sandbox-shell or final.default-busybox-sandbox-shell;
|
||||||
};
|
};
|
||||||
|
|
||||||
pegtl = final.nix.passthru.pegtl;
|
pegtl = final.callPackage ./misc/pegtl.nix { };
|
||||||
|
|
||||||
# Export the patched version of boehmgc that Lix uses into the overlay
|
# Export the patched version of boehmgc that Lix uses into the overlay
|
||||||
# for consumers of this flake.
|
# for consumers of this flake.
|
||||||
boehmgc-nix = final.nix.passthru.boehmgc-nix;
|
boehmgc-nix = final.nix.boehmgc-nix;
|
||||||
# And same thing for our build-release-notes package.
|
# And same thing for our build-release-notes package.
|
||||||
build-release-notes = final.nix.passthru.build-release-notes;
|
build-release-notes = final.nix.build-release-notes;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# for repl debugging
|
|
||||||
inherit self;
|
|
||||||
|
|
||||||
# A Nixpkgs overlay that overrides the 'nix' and
|
# A Nixpkgs overlay that overrides the 'nix' and
|
||||||
# 'nix.perl-bindings' packages.
|
# 'nix.perl-bindings' packages.
|
||||||
overlays.default = overlayFor (p: p.stdenv);
|
overlays.default = overlayFor (p: p.stdenv);
|
||||||
|
|
|
@ -20,8 +20,6 @@ SIGNIFICANCECES = {
|
||||||
|
|
||||||
# This is just hardcoded for better validation. If you think there should be
|
# This is just hardcoded for better validation. If you think there should be
|
||||||
# more of them, feel free to add more.
|
# more of them, feel free to add more.
|
||||||
#
|
|
||||||
# Please update doc/manual/src/contributing/hacking.md if you do. Thanks~
|
|
||||||
CATEGORIES = [
|
CATEGORIES = [
|
||||||
'Breaking Changes',
|
'Breaking Changes',
|
||||||
'Features',
|
'Features',
|
||||||
|
|
16
package.nix
16
package.nix
|
@ -14,7 +14,6 @@
|
||||||
boost,
|
boost,
|
||||||
brotli,
|
brotli,
|
||||||
bzip2,
|
bzip2,
|
||||||
callPackage,
|
|
||||||
cmake,
|
cmake,
|
||||||
curl,
|
curl,
|
||||||
doxygen,
|
doxygen,
|
||||||
|
@ -35,7 +34,7 @@
|
||||||
meson,
|
meson,
|
||||||
ninja,
|
ninja,
|
||||||
openssl,
|
openssl,
|
||||||
pegtl ? __forDefaults.pegtl,
|
pegtl,
|
||||||
pkg-config,
|
pkg-config,
|
||||||
python3,
|
python3,
|
||||||
rapidcheck,
|
rapidcheck,
|
||||||
|
@ -76,10 +75,8 @@
|
||||||
configureFlags = prev.configureFlags or [ ] ++ [ (lib.enableFeature true "sigstop") ];
|
configureFlags = prev.configureFlags or [ ] ++ [ (lib.enableFeature true "sigstop") ];
|
||||||
});
|
});
|
||||||
|
|
||||||
lix-doc = callPackage ./lix-doc/package.nix { };
|
lix-doc = pkgs.callPackage ./lix-doc/package.nix { };
|
||||||
build-release-notes = callPackage ./maintainers/build-release-notes.nix { };
|
build-release-notes = pkgs.callPackage ./maintainers/build-release-notes.nix { };
|
||||||
|
|
||||||
pegtl = callPackage ./misc/pegtl.nix { };
|
|
||||||
},
|
},
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
@ -383,12 +380,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||||
# Export the patched version of boehmgc.
|
# Export the patched version of boehmgc.
|
||||||
# flake.nix exports that into its overlay.
|
# flake.nix exports that into its overlay.
|
||||||
passthru = {
|
passthru = {
|
||||||
inherit (__forDefaults)
|
inherit (__forDefaults) boehmgc-nix editline-lix build-release-notes;
|
||||||
boehmgc-nix
|
|
||||||
editline-lix
|
|
||||||
build-release-notes
|
|
||||||
pegtl
|
|
||||||
;
|
|
||||||
|
|
||||||
inherit officialRelease;
|
inherit officialRelease;
|
||||||
|
|
||||||
|
|
|
@ -396,7 +396,7 @@ std::chrono::milliseconds ProgressBar::draw(State & state, const std::optional<s
|
||||||
if (printMultiline && moreActivities)
|
if (printMultiline && moreActivities)
|
||||||
writeToStderr(fmt("And %d more...", moreActivities));
|
writeToStderr(fmt("And %d more...", moreActivities));
|
||||||
|
|
||||||
if (!printMultiline && !line.empty()) {
|
if (!printMultiline) {
|
||||||
line += " " + activity_line;
|
line += " " + activity_line;
|
||||||
writeToStderr("\r" + filterANSIEscapes(line, false, width) + ANSI_NORMAL + "\e[K");
|
writeToStderr("\r" + filterANSIEscapes(line, false, width) + ANSI_NORMAL + "\e[K");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue