Remove the `no-url-literals` experimental feature
Is your feature request related to a problem? Please describe.
Nix currently has a 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, 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.
Yeah, it should be generalized, e.g. warnings = url-literals .... And then there could be an flag like gcc's -Werror to convert warnings into errors.
This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/2024-02-19-nix-team-meeting-minutes-126/40308/1