| 12 Jan 2026 |
John Ericson | a conservative NIX_PATH implementation would split on :, and require every entry to start with a / | 19:57:50 |
John Ericson | just don't support URLs at all | 19:58:05 |
John Ericson | and don't accidentally treat a URL as two valid relative paths | 19:58:27 |
John Ericson | * and don't accidentally treat a URL as two valid relative path entries | 19:58:31 |
John Ericson | (no foobar://x becomes foobar and ///x) | 19:59:12 |
John Ericson | * (no foobar://x becomes foobar and //x) | 19:59:20 |
Sergei Zimmerman (xokdvium) | Honestly I’m not even sure how URL parsing could in principle be implemented correctly. : can appear in the path component. There’s no way around the ambiguity. The alternative is to just accept colons have to be url encoded | 20:14:02 |
Sergei Zimmerman (xokdvium) | * Honestly I’m not even sure how URL parsing could in principle be implemented correctly. : can appear in the path component. There’s no way around the ambiguity. The alternative is to just accept that colons have to be url encoded | 20:14:15 |
Sergei Zimmerman (xokdvium) | And greedy matching here wouldn’t help too I think | 20:16:01 |
flokli | https://github.com/gytis-ivaskevicius/high-quality-nix-content/raw/master/memes/nix-path-supports-urls.jpg | 20:32:42 |
Ilan Joselevich (Kranzes) | This was posted already during this discussion 🤣 | 20:37:27 |
SomeoneSerge (back on matrix) | Oooor we reserve the name "flakeref" and their syntax so that we can call them "legacy", and introduce the $scheme:// syntax for the flake-agnostic CLI. Then github:nixos/nixpkgs -> github://nixos/nixpkgs?flake=true or such, and the $scheme refers to a fetcher | 20:56:54 |
raitobezarius | but you still need to come up with replacements to flakeref throughout the codebase like | 21:02:30 |
raitobezarius | the concept of profiles relies on flakerefs | 21:02:42 |
raitobezarius | if it melts into URLs and flakerefs are only a specific scheme of URLs, it's all fine | 21:02:52 |
Sergei Zimmerman (xokdvium) | Don't you mean horrendous regexes and strings? | 22:16:31 |
Sergei Zimmerman (xokdvium) | Ehhhhh, in this example nixos is the hostname | 22:16:56 |
Sergei Zimmerman (xokdvium) | Not sure it's a good idea to be even more idiosyncratic than it already is | 22:18:08 |
Sergei Zimmerman (xokdvium) | Also nix flake show github://aaaaaaaaaaaaaa/nixos/nix works nowadays both on lix and nix | 22:19:33 |
Sergei Zimmerman (xokdvium) | The authority just gets ignored | 22:19:41 |
raitobezarius | this too | 22:23:23 |
raitobezarius | :> | 22:23:25 |
SomeoneSerge (back on matrix) | Oh | 23:29:57 |
SomeoneSerge (back on matrix) | I see. I thought the concept was scheme-specific. After all, there's no host in file://? | 23:31:03 |
Sergei Zimmerman (xokdvium) | In reply to @ss:someonex.net I see. I thought the concept was scheme-specific. After all, there's no host in file://? Well, technically there can be. Windows UNC paths do that | 23:31:41 |
Sergei Zimmerman (xokdvium) | Or at least the spec says so. Practice is another matter entirely | 23:32:23 |
emily | that's why it's file:///etc/passwd rather than file://etc/passwd | 23:34:36 |
Sergei Zimmerman (xokdvium) | In reply to @emilazy:matrix.org that's why it's file:///etc/passwd rather than file://etc/passwd Also file:/path/to/file also is fine - though the rfc says it’s kind of less widespread and now the empty authority is preferred to the “no authority” case | 23:35:42 |
Sergei Zimmerman (xokdvium) | Funnily enough git itself parses file:/path/to/blah as an SCP-style path where file is the hostname | 23:36:21 |
SomeoneSerge (back on matrix) | Ah, there is that too, file:///foo has an empty host. | 23:38:30 |