1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-11-25 03:39:36 +01:00

Merge pull request #81 from DeterminateSystems/push-twpuyuspwtpz

Replace ε and ∅
This commit is contained in:
Graham Christensen 2025-06-02 17:32:11 +00:00 committed by GitHub
commit 8a82624801
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 21 additions and 24 deletions

View file

@ -343,14 +343,6 @@
See [Nix Archive](store/file-system-object/content-address.html#serial-nix-archive) for details.
- [`∅`]{#gloss-empty-set}
The empty set symbol. In the context of profile history, this denotes a package is not present in a particular version of the profile.
- [`ε`]{#gloss-epsilon}
The epsilon symbol. In the context of a package, this means the version is empty. More precisely, the derivation does not have a version attribute.
- [package]{#package}
A software package; files that belong together for a particular purpose, and metadata.

View file

@ -49,10 +49,10 @@ GroupedPaths getClosureInfo(ref<Store> store, const StorePath & toplevel)
std::string showVersions(const StringSet & versions)
{
if (versions.empty()) return "";
if (versions.empty()) return "(absent)";
StringSet versions2;
for (auto & version : versions)
versions2.insert(version.empty() ? "ε" : version);
versions2.insert(version.empty() ? "(no version)" : version);
return concatStringsSep(", ", versions2);
}
@ -97,8 +97,13 @@ void printClosureDiff(
if (showDelta || !removed.empty() || !added.empty()) {
std::vector<std::string> items;
if (!removed.empty() || !added.empty())
if (!removed.empty() && !added.empty()) {
items.push_back(fmt("%s → %s", showVersions(removed), showVersions(added)));
} else if (!removed.empty()) {
items.push_back(fmt("%s removed", showVersions(removed)));
} else if (!added.empty()) {
items.push_back(fmt("%s added", showVersions(added)));
}
if (showDelta)
items.push_back(fmt("%s%+.1f KiB" ANSI_NORMAL, sizeDelta > 0 ? ANSI_RED : ANSI_GREEN, sizeDelta / 1024.0));
logger->cout("%s%s: %s", indent, name, concatStringsSep(", ", items));

View file

@ -11,8 +11,8 @@ R""(
baloo-widgets: 20.08.1 → 20.08.2
bluez-qt: +12.6 KiB
dolphin: 20.08.1 → 20.08.2, +13.9 KiB
kdeconnect: 20.08.2 → ∅, -6597.8 KiB
kdeconnect-kde: ∅ → 20.08.2, +6599.7 KiB
kdeconnect: 20.08.2 removed, -6597.8 KiB
kdeconnect-kde: 20.08.2 added, +6599.7 KiB
```
@ -34,9 +34,9 @@ dolphin: 20.08.1 → 20.08.2, +13.9 KiB
No size change is shown if it's below the threshold. If the package
does not exist in either the *before* or *after* closures, it is
represented using `∅` (empty set) on the appropriate side of the
arrow. If a package has an empty version string, the version is
rendered as `ε` (epsilon).
represented using `added` or `removed`.
If a package has an empty version string, the version is
rendered as `(no version)`.
There may be multiple versions of a package in each closure. In that
case, only the changed versions are shown. Thus,

View file

@ -7,7 +7,7 @@ R""(
```console
# nix profile history
Version 508 (2020-04-10):
flake:nixpkgs#legacyPackages.x86_64-linux.awscli: ∅ -> 1.17.13
flake:nixpkgs#legacyPackages.x86_64-linux.awscli: 1.17.13 added
Version 509 (2020-05-16) <- 508:
flake:nixpkgs#legacyPackages.x86_64-linux.awscli: 1.17.13 -> 1.18.211
@ -20,7 +20,7 @@ between subsequent versions of a profile. It only shows top-level
packages, not dependencies; for that, use [`nix profile
diff-closures`](./nix3-profile-diff-closures.md).
The addition of a package to a profile is denoted by the string `∅ ->`
*version*, whereas the removal is denoted by *version* `-> ∅`.
The addition of a package to a profile is denoted by the string
*version* `added`, whereas the removal is denoted by *version* ` removed`.
)""

View file

@ -289,12 +289,12 @@ struct ProfileManifest
while (i != prev.elements.end() || j != cur.elements.end()) {
if (j != cur.elements.end() && (i == prev.elements.end() || i->first > j->first)) {
logger->cout("%s%s: ∅ -> %s", indent, j->second.identifier(), j->second.versions());
logger->cout("%s%s: %s added", indent, j->second.identifier(), j->second.versions());
changes = true;
++j;
}
else if (i != prev.elements.end() && (j == cur.elements.end() || i->first < j->first)) {
logger->cout("%s%s: %s -> ∅", indent, i->second.identifier(), i->second.versions());
logger->cout("%s%s: %s removed", indent, i->second.identifier(), i->second.versions());
changes = true;
++i;
}

View file

@ -58,8 +58,8 @@ nix profile list | grep -A4 'Name:.*flake1' | grep 'Locked flake URL:.*narHash'
[ -e $TEST_HOME/.nix-profile/share/man ]
(! [ -e $TEST_HOME/.nix-profile/include ])
nix profile history
nix profile history | grep "packages.$system.default: ∅ -> 1.0"
nix profile diff-closures | grep 'env-manifest.nix: ε → ∅'
nix profile history | grep "packages.$system.default: 1.0, 1.0-man added"
nix profile diff-closures | grep 'env-manifest.nix: (no version) removed'
# Test XDG Base Directories support
export NIX_CONFIG="use-xdg-base-directories = true"
@ -128,7 +128,7 @@ nix profile rollback
[ -e $TEST_HOME/.nix-profile/bin/foo ]
nix profile remove foo 2>&1 | grep 'removed 1 packages'
(! [ -e $TEST_HOME/.nix-profile/bin/foo ])
nix profile history | grep 'foo: 1.0 -> ∅'
nix profile history | grep 'foo: 1.0 removed'
nix profile diff-closures | grep 'Version 3 -> 4'
# Test installing a non-flake package.