question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Removing support for git+git@ VCS requirement scheme

See original GitHub issue

What’s the problem this feature will solve?

In addition to VCS requirements which have the form of a proper URL, pip also partially supports a git specific scheme of the form git+git@example.com:user/repo.git. As currently documented, this scheme is supported for editable installs only.

Supporting this scheme has a number of drawbacks:

  • This creates confusion when people try to use it without the --editable option (#2994, #6293).
  • This also creates bugs, such as when adding the commit to the requirement, pip freeze generates requirements that pip cannot process (#2038).
  • This specific format is not a proper URL, making such requirement impossible to translate to PEP 440 direct URL references.
  • it would seem that support for this format is rather accidental in the pip code base (https://github.com/pypa/pip/issues/2038#issuecomment-570065043, also illustrated by the fact that link.is_vcs returns False for such pseudo-URLs), and properly supporting it everywhere would be very complex.

This scheme is easily replaced by URLs such as

  • git+https://git@example.com/…
  • git+ssh://git@example.com/…
  • git+git://git@example.com/… (insecure)

Describe the solution you’d like

Deprecate support for this format during one year, then remove it (#7543).

Alternative solutions

  • fix issues as they are discovered (e.g. support this format for non-editable uses, make pip freeze transform the reference to a supported format)
  • do nothing, document the exceptions

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Reactions:8
  • Comments:17 (11 by maintainers)

github_iconTop GitHub Comments

8reactions
lericsoncommented, Aug 15, 2020

Eh, I gave up on Windows compatibility a long time ago 😃

3reactions
lericsoncommented, Aug 14, 2020

Never mind, I found a workaround using the environment variable support in requirements.txt:

-e git+file://${PWD}@mydep#egg=mydep
Read more comments on GitHub >

github_iconTop Results From Across the Web

4.1 Git on the Server - The Protocols
First, you choose which protocols you want your server to support. ... them from changing or removing internal Git files and corrupting the...
Read more >
Requirements management - GitLab Docs
With requirements, you can set criteria to check your products against. They can be based on users, stakeholders, system, software, or anything else...
Read more >
Git | TeamCity Cloud - JetBrains
Specify here when the git clean command is to run on the agent, and which files are to be removed. If a build...
Read more >
VCS Connections - Workspaces - Terraform Cloud
Refer to Connecting VCS Providers for a list of supported VCS providers and ... For example, when you move a VCS server or...
Read more >
Git vs SVN: What Is The Difference? - Perforce Software
The biggest difference between Git vs Subversion (SVN) is that Git ... push the commit to the central repo, and then delete the...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found