-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Add a "Newly Added Packages" Feature to "winget source update" for Better Discoverability #5106
Comments
@davidldennison that's an interesting feature. What do you think the behavior should be for clients getting their first update in a while? We have a pretty steady flow of packages being updated and added to the repository. The list could get long. WinGet performs a source update on its own after the cache expires ~15-16 minutes. Would this feature be only used when performing a manual source update? |
This idea stems from Scoops feature where they list all the new updates as shown below. However, I was thinking of only brand new new packages to winget, not updates or new releases. Although I personally would like having such a similar function for Winget as well. It could also be something users have to opt into! |
Thinking a bit about what it may take to implement this... For scoop, vcpkg and other package managers that directly use a git repo as their "source", this is relatively straightforward since it is basically a For preindexed sources we use a package with sqlite db created from it. We would have to add something to the package or db to be able to determine what has been updated. It would be a bit tricky to be able to have access to both the old and new versions of the source at once, since the package update happens in-place. Maybe we could add a timestamp to the packages in the db (if we don't already have one) and we could query things more recent than the last update; that would increase the size of the source package but it should be a few bytes per package which may or may not be too much. For Rest sources, the source update doesn't even do anything since we just query the endpoint when we need to. We would have to add to the rest API to be able to query it, implement it in the reference implementation, and wait for anybody with their own custom implementation to also do it. |
@florelis why not just do it by the id alone? For example, in this screenshot if a package id was added named `Microsoft.AIShell.Preview" it would trigger this function. Would that be easier? |
That is what I think is the hard part: determining what IDs were added. Unless somebody more clever than me comes up with a good solution |
Description of the new feature / enhancement
It would be great to have the
winget source update
have the ability to list completely new packages that were added to the Winget repository since the last update.This isn't about updated or outdated versions of existing packages—this is about spotlighting brand-new entries that weren't there before.
The idea is simple: after the sources are updated, the command would optionally display a list of new packages introduced to Winget. If there are no new additions, it exits as normal without any output. This would give developers and users a clear way to discover fresh software without the noise of version updates.
Why This Feature Matters
Drives Discovery of New Software
Users shouldn’t have to rely on random tweets or external blogs to find out what’s new on Winget. By highlighting new packages directly in the CLI, this feature ensures those tools don’t fly under the radar. For users, it’s about discovering hidden gems. For developers, it’s about ensuring their hard work doesn’t go unnoticed.
Boosts Adoption of New Tools
Developers who put in the effort to add their software to Winget want it to be used, and users want to find tools that solve their problems. This feature bridges the gap, driving quicker adoption of new tools and making developers’ contributions worth their while.
Encourages Developers to Join Winget
Adding a package to Winget takes time, resources, and technical effort. Knowing their software will be showcased immediately after it’s added incentivizes developers to onboard their tools to the repository. A clear reward for their efforts means more quality apps for users.
Proposed technical implementation details
Proposed Enhancement
Introduce a flag like --new-packages to winget source update:
EXAMPLE:
The text was updated successfully, but these errors were encountered: