-
Notifications
You must be signed in to change notification settings - Fork 703
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
Implement support for PIP-style compat VCS URIs #5522
Comments
One minor comment. It would be great if instead of: git+https://github.com/well-typed/cborg@3d274c14ca3077c3a081ba7ad57c5182da65c8c1#subdir=cborg it would be possible to write: github+well-typed/cborg@3d274c14ca3077c3a081ba7ad57c5182da65c8c1#subdir=cborg UPD: Please, don't downvote. After more discussion and thinking I've realized that this is not a good idea. |
@chshersh GitHub allows both SSH and HTTPS access, how do you distinguish between them with this notation? |
Isn't HTTPS the right choice here, since it's a read-only clone and HTTPS doesn't require messing about with public keys, unlike SSH? |
The user may want SSH for some reason. Anyway, I'm inclined to follow existing precedent for this syntax without inventing our own extensions, at least initially. |
@quasicomputational You also may want to have SSH access when you're depending on private GitHub repository and you don't want to type password each time you build project after changing commit tag. |
@chshersh I'm strongly against hardcoding |
According to the linked pip, as i would expect, one specifies ssh instead
of https by using ssh:// rather than https:// as the protocol.
|
This ticket quickly summarises a feature enhancement @typedrat and I discussed for the current GSOC
Currently the VCS syntax in
cabal.project
files is rather clunky; but fortunately there's prior art we can steal from other ecosystems, specifically from Python's PIP VCS SupportThe goal is to have the more compact syntax (which must be valid RFC 3986) as shown below in the non-exhaustive example
be syntax sugar for the more verbose
source-repository-package
based specificationNB: entries in
packages:
must be able to disambiguate the following 4 categories.cabal
files (e.g../mypkg/
or/foo/bar/doo.cabal
or./deps/*
)./deps/foo-1.2.3.tar.gz
ordeps/*.tar.gz
)https://hackage.haskell.org/package/stm-2.5.0.0/candidate/stm-2.5.0.0.tar.gz
)git
)(fwiw, should the need arise that the local-filepath interpretation may not be properly detected, one could use explicit
file:///
uris to explicitly disambiguate and force interpretation as a local filepath)This is a preliminary vague specifications; more details TBD
Follow-up stretch-goal: have
new-install
support vcs uris as well (TBD in separate ticket)The text was updated successfully, but these errors were encountered: