-
-
Notifications
You must be signed in to change notification settings - Fork 11
Search by tags #30
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
Search by tags #30
Conversation
|
Few questions / comments:
MS is testing a new search on nuget.org these days. Might be the reason for some strange results. https://devblogs.microsoft.com/nuget/new-and-improved-nuget-search/
What is the use case for this? Do you use it for debugging or is the PM internally doing this at some point?
Any idea why? If not, I'm inclined to take this behaviour as a normal bug - if it affects only not preconfigured feeds (i.e. any feed except nuget.org).
Please write
|
|
Sorry for being so brief in PR description...
|
I made the same observation. Searching for |
|
@mast-eu Last thing I'm considering is skipping id search on feeds and filter packages in PM. It's quite dirty, but until we have hundreds of plugins, it will work. Thoughts? |
|
Getting all packages with |
|
👍
…On Wed, Aug 28, 2019, 10:19 PM Martin Steinisch ***@***.***> wrote:
Getting all packages with tags:GitExtensions from all configured feeds
directly on startup? IMHO that's ok.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#30?email_source=notifications&email_token=ABBTEXQQEGHSYXF5RHMDOW3QG3FTVA5CNFSM4IQIHBUKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5MF77A#issuecomment-525885436>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABBTEXUWX2LHVMTZU4GIGFTQG3FTVANCNFSM4IQIHBUA>
.
|
|
I still need to fix two tests... |
…ll filters in app.
- Split one big method into multiple smaller. - Simplify conditions for continuing search on next page. - Fix loading single package (method FindLatestVersionAsync) when local filtering applies.
|
I have removed NuGet.Client update, because the never version doesn't support reordering of feeds, which we currently use. We can do the update later... |
src/PackageManager.NuGet/Services/EmptyNuGetSearchTermTransformer.cs
Outdated
Show resolved
Hide resolved
src/PackageManager.NuGet/Services/NuGetPackageVersionService.cs
Outdated
Show resolved
Hide resolved
| public List<string> Tags { get; } = new List<string>(); | ||
| public List<string> Description { get; } = new List<string>(); | ||
| public List<string> Summary { get; } = new List<string>(); | ||
| public List<string> Owner { get; } = new List<string>(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All of these can be mutated outside the class and may lead to unexpected situations. Is this really required?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm sorry, but I don't get the point. There are supported filter parameters. As searching supports multiplicity for earch parameter, they are all defined as lists. The class is designed as mutable, as implementations of INuGetPackageFilter may add or remove values.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@maraf is right. In the current design these are all supposed to be public.
src/PackageManager/ViewModels/PackageSourceSelectorViewModel.cs
Outdated
Show resolved
Hide resolved
src/PackageManager/ViewModels/PackageSourceSelectorViewModel.cs
Outdated
Show resolved
Hide resolved
|
FilterAsync?
…On Fri, Aug 30, 2019, 4:54 PM Marek Fišera ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In src/PackageManager.NuGet/Services/INuGetPackageFilter.cs
<#30 (comment)>
:
> using System.Threading.Tasks;
namespace PackageManager.Services
{
public interface INuGetPackageFilter
{
- NuGetPackageFilterResult IsPassed(IPackageSearchMetadata package);
+ Task<NuGetPackageFilterResult> IsPassedAsync(SourceRepository repository, IPackageSearchMetadata package, CancellationToken cancellationToken);
Any suggestions? Does GetFilterResultAsync sounds better?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#30?email_source=notifications&email_token=ABBTEXW2ZRJC7G25RIYATH3QHERBJA5CNFSM4IQIHBUKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCDH3BYQ#discussion_r319522819>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABBTEXR4AEXRQ2PLD7JEOJLQHERBJANCNFSM4IQIHBUA>
.
|
- All package id and version are compared case-insensitive. - Instead of String use string. - Rename method of INuGetPackageFilter.
mast-eu
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I made a lot of functional testing with this PR and everything is working as expected.
|
Thank you |
Resolves #27.
All searching is now in form of
id: {searchTerm} tags:GitExtensions. This pre-filters packages marked as GitExtensions, than it loads a dependency graph (one query per package) and checks if dependency onGitExtensions.Extensibilityexists.Searching using nuget.org search syntax (https://docs.microsoft.com/en-us/nuget/consume-packages/finding-and-choosing-packages#search-syntax) is not ideal.
When search term is "g", it won't find "GitExtensions.SVN"; the user must type "git", or "extensions".
This behavior can be even seen on the web:
It seems it doesn't work well on MyGet.
It doesn't work at all when source is a folder on disk.
Solution