Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

URL handling tech debt #9603

Open
roberth opened this issue Dec 13, 2023 · 2 comments
Open

URL handling tech debt #9603

roberth opened this issue Dec 13, 2023 · 2 comments
Labels
bug fetching Networking with the outside (non-Nix) world, input locking

Comments

@roberth
Copy link
Member

roberth commented Dec 13, 2023

Describe the problem

The way Nix handles URIs/URLs can be ad hoc or inconsistent at times.

  • URI prefixes aren't canonicalized
  • URI prefixes don't handle ? query parameters, unless they can be mistaken for path components
  • URI strings should be pushed to the program's boundary as much as possible
  • URI/URL naming is unclear
  • Parsing / canonicalization doesn't change the scheme to lower case (and probably more)

Expected behavior

Handle URIs and/or URLs consistently, compliantly, and only treat the as strings at the very boundary; where it's unavoidable.

nix-env --version output

Additional context

Priorities

Add 👍 to issues you find important.

@roberth roberth added bug fetching Networking with the outside (non-Nix) world, input locking labels Dec 13, 2023
@a-h
Copy link
Contributor

a-h commented Jan 10, 2024

Will the URL parsing changes address #7044 ?

@roberth
Copy link
Member Author

roberth commented Jan 11, 2024

It ought to. Indeed the OpenSSH client needs host name and port to be fed separately and not as a single string in URL "authority" format (ie the thing characterized by containing the optional :).
A URL class makes such a fix a bit easier.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug fetching Networking with the outside (non-Nix) world, input locking
Projects
None yet
Development

No branches or pull requests

2 participants