Skip to content

flake: update all inputs#1961

Closed
0xda157 wants to merge 10 commits intonix-community:masterfrom
0xda157:flake-update
Closed

flake: update all inputs#1961
0xda157 wants to merge 10 commits intonix-community:masterfrom
0xda157:flake-update

Conversation

@0xda157
Copy link
Copy Markdown
Contributor

@0xda157 0xda157 commented Nov 7, 2025

includes numtide/treefmt-nix#430 which fixes the ci failing


@stylix-automation stylix-automation bot added topic: documentation Documentation additions or improvements topic: dependencies Dependency updates topic: flake /flake.nix, /flake.lock, and /flake/ subsystems topic: modules /modules/ subsystem topic: stylix /stylix/ subsystem labels Nov 7, 2025
@stylix-automation stylix-automation bot added the topic: home-manager Home Manager target label Nov 7, 2025
Copy link
Copy Markdown
Member

@trueNAHO trueNAHO left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

I think we need to re-run CI several times for it to pass because it times out due to uploading all the new artifacts to the cache.

This is good to merge for me once CI passes.

@trueNAHO trueNAHO mentioned this pull request Nov 8, 2025
6 tasks
@trueNAHO
Copy link
Copy Markdown
Member

trueNAHO commented Nov 8, 2025

I think we need to re-run CI several times for it to pass because it times out due to uploading all the new artifacts to the cache.

As of commit 647bb8d ("vscode: add more themed items (#1957)"), our aarch64-linux runner is nearly out of space:

2025-11-04T14:13:07.1872772Z Filesystem      Size  Used Avail Use% Mounted on
2025-11-04T14:13:07.1873087Z /dev/root        72G   71G  868M  99% /

This PR causes CI to fail because we are finally running out of space:

System.IO.IOException: No space left on device : '/home/runner/actions-runner/cached/_diag/Worker_20251108-151317-utc.log'

-- https://github.com/nix-community/stylix/actions/runs/19182118802/attempts/2

Here is the relevant code:

# TODO: Lock this Action to a release tag once commit [1] ("fix: relocate
# TMPDIR to /mnt to improve Nix installer compatibility") is part of a
# release, resolving [2] ("does not work with cachix install nix action").
#
# [1]: https://github.com/wimpysworld/nothing-but-nix/pull/25
# [2]: https://github.com/wimpysworld/nothing-but-nix/issues/24
- uses: wimpysworld/nothing-but-nix@10c936d9e46521bf923f75458e0cbd4fa309300d # yamllint disable-line rule:line-length
if: runner.os == 'Linux'
with:
hatchet-protocol: holster

Comment thread .github/workflows/check.yml Outdated
if: runner.os == 'Linux'
with:
hatchet-protocol: holster
hatchet-protocol: carve
Copy link
Copy Markdown
Member

@trueNAHO trueNAHO Nov 9, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The problem is not the protocol not being aggressive enough. The problem is that it does nothing on aarch:

if: runner.os == 'Linux'

IIRC, we excluded aarch because it was causing non-trivial problems. Seems like we have to resolve those now.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I can tell runner.os doesn't specify the runner architecture, only the os. Are there docs that point to the contrary?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I can tell runner.os doesn't specify the runner architecture, only the os. Are there docs that point to the contrary?

Commit e334b30 ("ci: check: add wimpysworld/nothing-but-nix Action for larger Nix store") simply replicates nothing-but-nix's internal guarding implementation, as mentioned in wimpysworld/nothing-but-nix#33 (comment).

@Defelo and @MattSturgeon, is Defelo/nixpkgs-review-gha#26 currently the best way for getting nothing-but-nix to work on darwin? What would an upstream PR look like? Considering we already pin a specific version, I would not mind pinning a patched mini-fork.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Defelo and MattSturgeon, is Defelo/nixpkgs-review-gha#26 currently the best way for getting nothing-but-nix to work on darwin? What would an upstream PR look like? Considering we already pin a specific version, I would not mind pinning a patched mini-fork.

Darwin CI seems to be doing fine currently, I don't see why we need to reclaim more space there. The issue with CI is the runner seems to disconnect, which is likely caused by being starved of disk space, ram or cpu resources.

@danth
Copy link
Copy Markdown
Member

danth commented Nov 14, 2025

This PR causes CI to fail because we are finally running out of space

What if we set min-free and max-free to trigger some garbage collections during the run?

@stylix-automation stylix-automation bot added the status: merge conflict Merge conflict label Nov 15, 2025
@danth
Copy link
Copy Markdown
Member

danth commented Nov 15, 2025

Also, NixOS/nix@ecdda57 is now released, so we could potentially switch to using a plain nix flake check which would be able to skip already built packages, at least after the first run.

efd8045 caused nixpkgs and dev-nixpkgs
to be different.
@danth danth enabled auto-merge (squash) November 15, 2025 22:57
@trueNAHO
Copy link
Copy Markdown
Member

This PR causes CI to fail because we are finally running out of space

Not resolving this issue before the release of the 25.11 stable branch, would complicate our release-25.11 branch-off process.

This PR causes CI to fail because we are finally running out of space

What if we set min-free and max-free to trigger some garbage collections during the run?

Could be worth a try if a proper solution is not possible.

Also, NixOS/nix@ecdda57 is now released, so we could potentially switch to using a plain nix flake check which would be able to skip already built packages, at least after the first run.

Yes. Although, it would be better to clean this up in a follow-up PR. For reference, commit 29dc3dd ("gnome: update to GNOME 49 (#1966)") uses version 2.32.1.

@trueNAHO trueNAHO mentioned this pull request Nov 16, 2025
6 tasks
@MattSturgeon
Copy link
Copy Markdown
Member

includes numtide/treefmt-nix#430 which fixes the ci failing

You may also want to consider programs.biome.validate.enable = false, to avoid potential hash-mismatch issues reoccurring.

Validating your biome settings against a schema is unnecessary, if you test that the formatter actually works when updating its settings.

Comment thread doc/src/modules.md
Comment thread .github/workflows/check.yml Outdated
@0xda157
Copy link
Copy Markdown
Contributor Author

0xda157 commented Nov 16, 2025

we could switch to using namespace runners or buildbot, both provided by nix-community. nixvim and home-manager both have switched to buildbot.

@danth
Copy link
Copy Markdown
Member

danth commented Nov 17, 2025

Switching to buildbot seems like a good idea and would save us time setting up our own CI. I assume things are also cached on the build server between runs making everything a lot faster.

@trueNAHO
Copy link
Copy Markdown
Member

we could switch to using namespace runners or buildbot, both provided by nix-community. nixvim and home-manager both have switched to buildbot.

Considering Stylix consumes considerably more CI time than most other Nix projects 1 2 3 (maybe second to Nixpkgs), would we overload CI usage? IIRC, Stylix already runs on custom nix-community runners.

@danth
Copy link
Copy Markdown
Member

danth commented Nov 17, 2025

Considering Stylix consumes considerably more CI time than most other Nix projects 1 2 3 (maybe second to Nixpkgs), would we overload CI usage?

This is definitely something to consider. Assuming packages can be cached locally on the build machine, our main consumption would be evaluation time. We could reduce this later by simplifying the testbed machines, for example using a more lightweight desktop environment, disabling documentation packages, and so on.

IIRC, Stylix already runs on custom nix-community runners.

AFAIK we're using standard GitHub hosted runners:

- name: aarch64-linux
runs-on: ubuntu-24.04-arm
- name: aarch64-darwin
runs-on: macos-15
- name: x86_64-linux
runs-on: ubuntu-24.04
- name: x86_64-darwin
runs-on: macos-15-intel

@trueNAHO
Copy link
Copy Markdown
Member

trueNAHO commented Nov 18, 2025

CI is passing again in commit 2877806 after several manual retries. Maybe CI consistently passes now that the cache has been properly populated.

The CI of commit 727785e passed on the first retry. If the CI of commits 3e2c930 and 961948b both also pass on the first retry, then we can assume that CI is reliably working again.

@0xda157
Copy link
Copy Markdown
Contributor Author

0xda157 commented Nov 18, 2025

CI is passing again in commit 2877806 after several manual retries. Maybe CI consistently passes now that the cache has been properly populated.

This seems likely, but our ci should still be functional when dealing with a large flake update. I'd still like to pursue using buildbot.

@0xda157 0xda157 closed this Nov 18, 2025
auto-merge was automatically disabled November 18, 2025 23:17

Pull request was closed

@0xda157 0xda157 deleted the flake-update branch November 18, 2025 23:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

status: merge conflict Merge conflict topic: ci /.github/ subsystem topic: dependencies Dependency updates topic: documentation Documentation additions or improvements topic: flake /flake.nix, /flake.lock, and /flake/ subsystems topic: home-manager Home Manager target topic: modules /modules/ subsystem topic: stylix /stylix/ subsystem

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants