-
Notifications
You must be signed in to change notification settings - Fork 77
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
New mvn
scheme to replace lib
scheme.
#1916
Comments
Can we merge this with this discssion? #1886 |
merged here. We can start by implementing |
I like the idea of this. my only addition is, maybe not use the fragment for the version? |
|
For example, gradle uses so does maven itself as well: if you run mvn dependency:tree for example:
So that would mean either it's |
yes I saw that too, but printing is not enough. We have to be sure it also parses unambiguously. This depends on the restrictions we have on group id's and artifact id's, and that intersected with the constraints on authorities in URIs. If we are lucky we do not need any encodings; the group/artifact id's are then fully contained in the authority character class, and we have characters left outside of that intersection in authorities that we can use as separators. Source material:
I think that |
Definitely, I'd like the root of a file system to be encoded in the authority/host field of the URI. The files inside of the jar can go in the path then. Otherwise, the file system metaphor breaks inside Rascal (we don't know what a root is anymore). |
I'd also like to propose we do not support any shorthands, so no:
The |
For gradle their syntax is not printing, it's how you describe dependencies.
I think the biggest problem is that
Agreed, I prefer that as well.
Agree. |
section-2.3 says we only have these characters if we want to stay out of accidental other interpretations: And mvn says this: So the intersection is: |
What the URI standard does not say is that authorities in VScode will be normalized to lowercase characters anyway. |
but |
theoretically yes. so it seems we should use the path component |
The current plan is to slowly move away from the
lib://
scheme with the following idea:mvn
jar like so:mvn://package-id/project-id#VERSION-CONSTRAINT
mvn
URIs.mvn
URIs are also not universal (dependent on the repositories configuration in the local pom.xml), at least they are precise and they are deterministic. As long as projects do not move between different repo's they are reasonable.That's the plan.
Originally posted by @jurgenvinju in usethesource/rascal-language-servers#110 (comment)
The text was updated successfully, but these errors were encountered: