Advanced Search
Search Results
51 total results found
Lix contributors
Information you might want if you're thinking about contributing to Lix
Lix infrastructure guide
Information about adminstering Lix's infrastructure.
Lix organisation
Information related to the Lix project organisation.
Common issues
This book exists as a simple knowledge base of common issues and their resolutions. They may be migrated to other documentation as required.
Style Guide
Not just about code, a style guide is a list of decisions we've made, that we want to be consistent about going forwards. It does not need to be comprehensive of all possible issues, nor does it need to confine itself to trivial topics such as formatting. It's...
Working in the Lix codebase
See also: See also: https://git.lix.systems/lix-project/lix/src/branch/main/doc/manual/src/contributing/hacking.md
Design documents
This category contains design documents written by the Lix team, which may or may not be implemented.
Auth/SSO systems
A major part of Lix infrastructure is the authentication/SSO systems. Here, you can find information about how to run them.
Tooling improvements
We use a lot of tooling. There are papercuts we run into with our use cases that we would really like to have fixed.
Postmortems
Lix Beta Guide
Thank you for choosing to help us in our beta! There is a lot of work-in-progress documentation and a lot of it is work in progress or awaiting move to the wiki. Our apologies for this state, let us know if there is something you need. If you run into any fric...
Information organisation
Lix has a lot of information as a project, and we want to make it accessible in a way that it can be found later if necessary. There are various tools for keeping information in the project, and they have different purposes Chat Chat is good for: Information ...
Code
Code changes Tests If at all practicable, all new code should be tested to some extent. If writing a test is hard, we need to prioritize making it easier, and potentially block features if that is the case. Documentation Reference documentation should be added...
Language and terminology
Language Most existing Lix documentation is written in British English. We intend to continue with that. Terminology (FIXME: unsure if this should be in the style guide but ... it kinda should be -jade) Nix language - Use this to refer to the language which ...
Misc tips
buildbot user style to make the pulsing pills bearable @keyframes pulse_animation { 0% { transform:scale(.9) } 50% { transform:scale(1) } to { transform:scale(.9) } } .pulse { animation-duration: 10s !important; } FIXME: someone should PR this, now...
Bug tracker organisation
We have a repo of directly imported nix bugs at https://git.lix.systems/nixos/nix. Please don't file bugs in there, we want the IDs to match. When we import a bug, we might put notes on there as we triage it, and potentially close it. Bug labels on NixOS/nix ...
Gerrit
What is Gerrit and why do people like it? Gerrit is a code review system from Google in a similar style to Google's internal Critique tool, but based on Git, and publicly available as open source. It hosts a Git repo with the ability to submit changes for revi...
Improving build times
Setup Use a clang stdenv: nix develop .#native-clangStdenvPackages Then delete build/ if you were using gcc before. Enable build-time profiling with: just setup; meson configure build -Dprofile-build=enabled Then run the build: just compile. Enabling build-tim...
Freezes and recommended contributions
Suggested contributions Consider taking an issue marked E-help wanted: assign it to yourself and have a go. Feel free to ask for help in the development channel. The Lix team wants these issues fixed, but they are not high on our agenda to fix ourselves. When ...
Why Lix?
(page under construction. editor's note: parts of https://pad.lix.systems/lix-manifesto (PRIVATE) are ported, parts need review before posting here) (editor's note (ii): this page wants to be a contributor facing page, as opposed to the website page that maybe...
Changing names, emails, etc
The Lix project endeavours to not deadname people, because we believe in human decency. However, some of our software has other ideas. This page documents the workarounds to manually fix profile updates that don't get conducted because various software is bust...
regexp engine investigation
nix uses libstdc++'s std::regex. it uses whatever version of libstdc++ the host system has. which it invokes in both std::regex_replace std::regex_match modes. nix occasionally uses the flags std::regex::extended and std::regex::icase which determine the avail...
Dreams
This page documents the dreams of the Lix team. These are features which we have generally not roadmapped yet, and which may not have complete and thoroughly thought-through plans, and which we would like to think about more completely before implementing. We ...
Machine and service overview
The Lix infrastructure is maintained with Nix code at https://git.lix.systems/lix-project/web-services. That repository is the source of truth for what's serving where, but we attempt to reflect that here as well for ease of reference. This page is the source ...
Backport guide
Don't forget, using Gerrit is a bit different than other systems. single commits try git cherry-pick -x first. if this works, excellent. if not, apply the usual cherry-picking procedures: track down apply failures to intermediate changes. maybe cherry-pick th...
How accounts work
Lix has one source of truth for authentication: Keycloak (identity.lix.systems). Most services are bound to Keycloak for authentication via OAuth2, although it supports SAML as well. GitHub vs Local accounts GitHub accounts are used at Lix for two reasons: Ea...
Codebase overview
The Lix system is constituted of two broad parts, the evaluator and the store daemon. The two pieces may run on the same machine or on different machines. For example, in a remote build setup like https://hydra.nixos.org, one node is running several evaluators...
Buildbot runbook
Our buildbot instance has a habit of breaking due to excess load. Restarting the worker If the worker (primary, handling nix evaluations) explodes, it can be restarted. ssh root@buildbot.lix.systems 'systemctl restart buildbot-worker.service' Re-trying spuriou...
Operations
Operational Conventions Code Review Self Stamping and Merging On our Gerrit, core members have permissions to +2 any arbitrary CL, because sometimes we should be able to get something in quickly, and talk about it afterwards. In almost every case, the author o...
Language versioning
This document is extremely a draft. It needs some editing and discussion before it can be made into a useful thing. It's been simply copy pasted out of the pad in its current form. See also FIXME: piegames langver ideas musings puck: honestly, having languag...