Closed mast-eu closed 5 years ago
@maraf Can your confirm this is actually an issue of the PM? Or did I miss something within the NuGet packages https://www.nuget.org/packages/GitExtensions.SVN/0.2.0.21 and https://www.nuget.org/packages/GitExtensions.Extensibility/0.1.0.31?
@mast-eu The problem is with casing in dependency definition. PM declares dependency on "GitExtensions.Extensibility", but SVN package has dependency on "gitextensions.extensibility".
Being case nonsesitive for package ids makes sense, so it is a bug.
PM declares dependency on "GitExtensions.Extensibility", but SVN package has dependency on "gitextensions.extensibility".
I suspected a problem with casing. Therefore I locally changed the line you indicate to all lower case. This change alone did not work. There must be some other point that needs to be changed, too.
Being case nonsesitive for package ids makes sense, so it is a bug.
Agree. The .nuspec reference states that package IDs are not case-sensitive https://docs.microsoft.com/en-us/nuget/reference/nuspec#id
I made a new release of GitExtensions.SVN
plugin which has the dependency GitExtensions.Extensibility
(with "correct" casing): https://www.nuget.org/packages/GitExtensions.SVN/0.2.1.24
But still, it is not found by the PM.
There's one difference though. I used the same trick as above (force filterResult = NuGetPackageFilterResult.Ok;
) to install the plugin anyhow.
Now, when I check the "installed" tab, it doen't say "Not compatible" anymore.
This one is weird. Package from nuget.org says it has zero dependencies...
But when I download it and let PM search a directory on disk, it works.
@RussKie consider that this one needs to be fixed too for PM version 1.0.0, if you want to delay GE 3.2.
In the current state the list of search results in PM is always empty.
The dependencyGroup from nuget API is always empty. It might be possible that they changed it lately.
Even on search resource for nuget V3 is dependency graph always empty. NuGet.Client library has this property, other nuget feed implementers provides it, but nuget.org doesn't. The fix for this isn't an easy one. I see two posibilities:
Suggest reporting the issue to NuGet folks
On Mon, Aug 26, 2019, 10:17 PM Marek Fišera notifications@github.com wrote:
Even on search resource for nuget V3 is dependency graph always empty. NuGet.Client library has this property, other nuget feed implementers provides it, but nuget.org doesn't. The fix for this isn't an easy one. I see two posibilities:
- For each found package execute a separate nuget query to get dependencies (might be quite slow).
- Use some different mechanism to identify GE plugins.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/gitextensions/gitextensions.pluginmanager/issues/27?email_source=notifications&email_token=ABBTEXTG6VE55PPLPYZF7LTQGQT4TA5CNFSM4IOZPNO2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5FMCYY#issuecomment-524992867, or mute the thread https://github.com/notifications/unsubscribe-auth/ABBTEXQ4M2U6VM4ZTHWNK4DQGQT4TANCNFSM4IOZPNOQ .
NuGet.Client library has this property, other nuget feed implementers provides it, but nuget.org doesn't.
I was a bit hesitant in responding, because I'm new to everything related to nuget. However the documentation for search query results does not contain any dependency info. See also the sample response.
1) For each found package execute a separate nuget query to get dependencies (might be quite slow).
Not good.
2) Use some different mechanism to identify GE plugins.
How about a tag "GitExtensionsPlugin"? Tags are included in query response.
How about a tag "GitExtensionsPlugin"? Tags are included in query response.
Tags are possible. What is missing is version for checking compatibility. Right it is disabled, but I always thought we will enable it one day. We could check tags for fast filtering and them load dependencies for matched packages. Thoughts?
Can we filter by tags first, and then make additional nuget calls for matching packages?
On Tue, 27 Aug 2019 at 09:24, Marek Fišera notifications@github.com wrote:
How about a tag "GitExtensionsPlugin"? Tags are included in query response.
Tags are possible. What is missing is version for checking compatibility. Right it is disabled, but I always thought we will enable it one day. We could check tags for fast filtering and them load dependencies for matched packages. Thoughts?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/gitextensions/gitextensions.pluginmanager/issues/27?email_source=notifications&email_token=ABBTEXUYWJDNGAH2P42I2XLQGTCALA5CNFSM4IOZPNO2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5GUGLQ#issuecomment-525157166, or mute the thread https://github.com/notifications/unsubscribe-auth/ABBTEXSGGVS2MAYGGCZPAFTQGTCALANCNFSM4IOZPNOQ .
Can we filter by tags first, and then make additional nuget calls for matching packages?
That's exactly what I was thinking about.
I agree.
Tags have also another advantage: They can be used in a search query.
This means that PM on startup could directly show the full list of plugins, without the need to manually enter some search term. Maybe that's not needed right now, but would improve UX on the long run.
From https://docs.microsoft.com/en-us/nuget/api/search-query-service-resource#search-for-packages:
The search API allows a client to query for a page of packages matching a specified search query. [...] the general expectation is that the search query is used for matching package IDs, titles, descriptions, and tags.
From https://docs.microsoft.com/en-us/nuget/consume-packages/finding-and-choosing-packages#search-syntax:
Filtering: You can apply a search term to a specific property by using the syntax
<property>:<term>
where<property>
(case-insensitive) can be id, packageid, version, title, tags, author, description, summary, and owner.
I tried to install the plugin
GitExtensions.SVN
via the PM. The plugin is available here: https://www.nuget.org/packages/GitExtensions.SVN/0.2.0.21It has a dependency on
GitExtensions.Extensibility
, which is available on the same feed: https://www.nuget.org/packages/GitExtensions.Extensibility/0.1.0.31Reproduction steps:
GitExtensions.SVN
GitExtensions.SVN.0.2.0.21
was correctly found, but skipped for some unknown reason:Searching 'GitExtensions.SVN'.
22/08/2019 22:08:24 root.Search(DEBUG)
Loading page '0'.
22/08/2019 22:08:24 root.Search(DEBUG)
Searching in 'https://api.nuget.org/v3/index.json'.
22/08/2019 22:08:25 root.Search(DEBUG)
Found 'GitExtensions.SVN.0.2.0.21'.
22/08/2019 22:08:25 root.Search(DEBUG)
Package skipped.
22/08/2019 22:08:25 root.Search(DEBUG)
Loading page '1'.
22/08/2019 22:08:25 root.Search(DEBUG)
Search completed. Found '0' items.