Comments (5)
it's almost certainly a niche issue
I don't think it is; see my comment about the ofborg nodes not having remote builders. That issue is soft-blocked because some others were aware of this problem.
are welcome
1 and 2 are definitely welcomed.
I wouldn't recommend 3, because it is a lot more work to design develop and review, whereas I believe 2 is much simpler and covers the current use cases.
Perhaps 3 is best reframed as part of a larger project to make remote building more self-configuring and/or dynamic. For instance, the scheduler doesn't discover the remote metadata such as system features. It seems that those require similar solutions, or changes in the protocol etc that benefit all scheduling related info.
from nix.
#1914 is maybe relevant?
from nix.
Wow, thanks for the prompt attention :)
[W]hy trying to make it cyclic to begin with?
I would like to be able to initiate builds from any one of the machines A, B, C, etc., and recruit the other machines as builders. I am not trying to make it cyclic; that's just an effect of the remote builder implementation that I didn't anticipate.
@fricklerhandwerk -- it's almost certainly a niche issue, though as you say it would still be nice to document it. As the above-linked "Developing a system that replaces nix remote build" Discourse thread documents thoroughly, the current remote builder implementation gives you not just the banana (having remote machines build stuff) but the gorilla that's holding it, and the entire jungle besides (IIUC, something like the complete Nix configuration on the remote builders, including their builders
settings, certain timeout settings, etc.). This is surprising, at least to me.
[C]ontributions welcome for this!
Haven't touched C++ since college; maybe time to see how badly those muscles have atrophied 😅
To confirm, contributions are welcome for any/all of the following?:
- Documenting this wrinkle of remote building,
- (Optionally?) passing
builders = ""
through the daemon protocol, and - Implementing remote builder cycle detection.
from nix.
Triaged in Nix team meeting:
- @roberth: currently ofBorg doesn't have remote builders because they would suffer from the same issue; this makes NixOS
passthru
tests harder for macOS (you'd have to remove them or they would fail, both of which would be unfortunate) - @Ericson2314: why trying to make it cyclic to begin with?
- @fricklerhandwerk we could at least write the fact into documentation... it doesn't seem like a serious enough problem to invest energy into fixing it.
- @roberth: an easy to implement fix would be passing
builders = ""
through the daemon protocol, and there would be no transitive remote building, maybe even optionally (if you want to send builds to online services, which would pass it on)- the ideal solution would of course be implementing cycle detection
- @Ericson2314: related an ~exhaustive list of issues with remote building in case one starts attacking the broader problem space
- contributions welcome for this!
from nix.
This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/2024-05-22-nix-team-meeting-minutes-147/45835/1
from nix.
Related Issues (20)
- [request] support for FIPS 140-2 with openssl provider
- Upload lock held for longer than necessary HOT 3
- Building Nix fails with stack overflow during doc generation on Amazon Linux HOT 5
- Problem with the SSL CA certificate HOT 1
- Configure niceness of build tasks
- nix-build fails to look <paths> up in its arguments HOT 3
- Cannot install on OSX 14.5 (M2) HOT 1
- Flake copying performance regressed on macOS in 2.19 HOT 3
- CLI exit codes
- `nix.settings.preallocate-contents` is not enabled by default
- "Suggest an edit" link in documentation is broken for Experimental commands
- Document (and (re?)name) the "installable" concept in e.g. `nix eval` HOT 1
- More structured settings in nix store URLs HOT 2
- uncaught exception: eDSRecordAlreadyExists HOT 2
- Incorrect parsing of `or` as a variable in expressions
- More explicit parser dump format for testing
- Clarify the special role of `default.nix`
- Single user installation: Using $HOME/.nix instead of /nix HOT 3
- Garbage collection fails because directory is not empty HOT 5
- Add Gitea/Forgejo flake input
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nix.