# 2024-02-19 Nix team meeting minutes #126

**URL:** https://discourse.nixos.org/t/2024-02-19-nix-team-meeting-minutes-126/40308
**Category:** Nix
**Created:** [February 26, 2024, 7:57am UTC](https://discourse.nixos.org/t/2024-02-19-nix-team-meeting-minutes-126/40308 "2024-02-26T07:57:59Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![thufschmitt](https://discourse.nixos.org/user_avatar/discourse.nixos.org/thufschmitt/32/202_2.png) [@thufschmitt](https://discourse.nixos.org/u/thufschmitt)
#### Post date: [February 26, 2024, 7:58am UTC](https://discourse.nixos.org/t/2024-02-19-nix-team-meeting-minutes-126/40308/1 "2024-02-26T07:58:00Z")

</div>

## [https://github.com/NixOS/nix/pull/9857](https://github.com/NixOS/nix/pull/9857)

> <https://github.com/NixOS/nix/pull/9857#issuecomment-1952535308>
>
> Team meeting notes:
> 
> \- Needs more documentation.
> \- Maybe the extra Unix domai…n socket can be replaced with a new STDERR\_\* message to have the daemon request auth from the client. Then it would work over ssh-ng as well.
> \- Should be an experimental feature.
> \- Currently auth tunneling is only supported for trusted users, but it might be okay to support it for all users. (Though we have to be careful with e.g. Attic since we don't want the client to override the user name used to connect to Attic, since then the server will return a different (possibly untrused) slice of the binary cache.)
> \- Maybe the client should ask the user to approve sending credentials to the daemon, so that e.g. a remote SSH daemon cannot exfiltrate arbitrary secrets from the client.

## Installables syntax

> [@Installables CLI design](https://discourse.nixos.org/t/installables-cli-design/38601):
>
> @thufschmitt drafted this set of proposals based on [2024-01-15 Nix team meeting minutes #115](https://discourse.nixos.org/t/2024-01-15-nix-team-meeting-minutes-115/38297), and it was edited by maintainers. Posting it here to continue the discussion in the open. This is a [Wiki post](https://meta.discourse.org/t/what-is-a-wiki-post/30801) that anyone can edit to add alternatives and considerations (or just fix typos) #1: global --file argument Current semantics: If the command-line contains --file foo.nix, then all the installables are interpreted as attribute paths in foo.nix (+ auto-calling as needed). Same for --expr some…

Extra proposal:

- Allow arbitrary fetcher refs as argument to `--tree`

- Search for a `default.nix` if no `flake.nix` found (unless there’s an explicit `--flake`)

- For `--expr`

- Decision:

## Cleaning up experimental features

- @edolstra: We really should have tracking issues for all of these

- @ericson3214: Yes we should, I had made [All experimental feature flags should have a tracking issue, shown in docs, and enforced mechanically · Issue #9345 · NixOS/nix · GitHub](https://github.com/NixOS/nix/issues/9345) for enforcing this. It should happen.

### FetchTree

- @thufschmitt: We committed to stabilize after the previous release. Should do it now

### NoURlLiterals

Shouldn’t be an “experimental” feature, rather a deprecated one.  
Need a mechanism for deprecated features

> <https://github.com/NixOS/nix/issues/10048>
>
> \*\*Is your feature request related to a problem? Please describe.\*\*
> 
> Nix curren…tly has a \[\`no-url-literals\`\](https://nixos.org/manual/nix/stable/contributing/experimental-features.html?highlight=url%20literal#no-url-literals) experimental feature that disables the use of URL literals in the language.
> While the change by itself is something we agree we want to move towards, having it be an experimental feature isn't the right thing because it's unlikely that we'll ever flip the switch, and it isn't visible by default.
> 
> 
> \*\*Describe the solution you'd like\*\*
> 
> What we should instead have is have it be (visibly) deprecated (through warnings), with a way to forbid it altogether, and a way to shut the warnings if needed.
> 
> \-- \_End of the team discussion, the below is my own interpretation of the agreement we had and up to discussion\_ --
> 
> Concretely, we should remove the experimental feature, and add an option \`warn-url-literal = {yes|no|error}\`, defaulting to \`yes\`, with the (long-term) plan of making it default to \`error\`.
> 
> This could be later extended to a more generic mechanism able to handle more warning/errors. Tvix has \[a few of them\](https://code.tvl.fyi/tree/tvix/eval/src/warnings.rs?id=6b136dfd23c03cc61d189ad5d41dd881e45b677e#n9), and there are a number of things discussed here that are blocked on the lack of a deprecation path (https://github.com/NixOS/nix/issues/7578, https://github.com/NixOS/nix/issues/8738, https://github.com/NixOS/nix/issues/8613)
> 
> \*\*Priorities\*\*
> 
> Add :+1: to \[issues you find important\](https://github.com/NixOS/nix/issues?q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc).

### FetchClosure

Already discussed in length. Recent behaviour change.

Depending on the feedback after that change, we could stabilize at leat part of it.  
The pure CA part should (hopefully) be good to go

### ReplFlake

Was here to provide a smooth transition for a breaking change.  
Should flip the switch now.

@tomberek will take over.

### AutoAllocateUids

- Can remove the experimental flag (still won’t enable the option by default)
- Doesn’t fully work on MacOS (because can’t fake `/etc/passwd`, so breaks `whoami` and friends)
