microsoft / devhome

The new Dev Home experience for Windows!
https://aka.ms/devhomedocs
MIT License
3.62k stars 323 forks source link

Apps & Packages - Feature Exploration! #1984

Open joadoumie opened 11 months ago

joadoumie commented 11 months ago

Dev Home Feature Exploration: Apps & Packages

Please Provide Feedback & Ideas!

Please let us know what you think about this feature by commenting on this issue! We'd love to hear your ideas and feedback!

Suggested New Feature: Apps & Packages

This new feature aims to create an all-in-one apps & packages management experience in Dev Home that allows you to manage your apps & package in a single, streamlined interface:

Apps & Packages Mock Up Mock up of Apps & Packages Update Flow

Scenario

As a developer, I want to be able to easily manage my installed apps & packages in one place so that I can quickly update, pin, uninstall, and view my apps & packages.

Additional Details

A more detailed spec is in progress and will be linked here when it is complete.

High level features include the ability to:

joadoumie commented 11 months ago

1983

totkeks commented 11 months ago

My first impression is, that this could be the GUI winget currently lacks. And why not integrate it in Dev home, since there is also the configurations integration via winget already there.

I also like that it shows more detailed information than you normally get from apps in the windows store.

A feature that I would love would be automatic updates for winget sourced packages. There exist some open source scripts that try to do this, but I'd always prefer an official solution.

My current solution is hitting winget upgrade and winget upgrade --all whenever I'm bored/idle and just happened to open my terminal.

I'm not using the advanced features like version pinning yet, but having a nice GUI for it will make it easier to use for sure.

Another interesting feature that just came to my mind is handling having different versions of the same app installed at the same time. Though I'm not sure if this is in scope of this feature or even Dev home for that matter, or if this is more a winget and package management topic.

agpt8 commented 11 months ago

Here are some thoughts that pop in my head after seeing this:

  1. As you said: "This new feature aims to create an all-in-one apps & packages management experience in Dev Home that allows you to manage your apps & package in a single, streamlined interface:", will this also detect and populate packages and apps that are not dev related? From the screenshots I see Edge Dev listed. If it does not, how is it differentiating between dev and non-dev packages and apps.
  2. I install many apps from winget that may not be dev related, will they show up here?
  3. Will I be able to manually add a package here? If it is already installed, in theory it should be there in the list but if not, can I add it? If it is not already installed, will this serve as an interface to let me install apps through winget? Also while giving me the ability to view the code/command it will use to do it?
  4. I dont see the ability to generate winget configuration files. This is something that Dev Home lacks and this particular GUI looks like a viable option to have that option. Importing, exporting, visualizing, editing winget configurations should be an option in dev home.
  5. For all the packages installed, it should also be able to show where they are installed on the system and where they came from by hovering over the branches icon under Version and Status column (using winget metadata I guess...?). While at it, for installing winget packages through this interface, having options to install packages through a url, zip, or any other install/download option that winget supports would be very useful!
revanmj commented 11 months ago

Here are some thoughts that pop in my head after seeing this:

  1. As you said: "This new feature aims to create an all-in-one apps & packages management experience in Dev Home that allows you to manage your apps & package in a single, streamlined interface:", will this also detect and populate packages and apps that are not dev related? From the screenshots I see Edge Dev listed. If it does not, how is it differentiating between dev and non-dev packages and apps.
  2. I install many apps from winget that may not be dev related, will they show up here?

To me it looks like it's just a GUI for winget and as far as I know there are no package categories in winget. So filtering just dev related packages would require maintaining some kind of a whitelist in Dev Home.

CanePlayz commented 10 months ago

As already mentioned, this seems to be a good WinGet GUI approach. However, I think the extension of being able to directly see the current and newest version of a package as well as its source and having an update button is something that could be quite useful for regular users to have in the Windows settings as well. Dev Home could then offer a list of Apps & Packages that only contains the "dev packages" and similar items.

Seba244c commented 10 months ago

I really like the idea of having a consolidated GUI for winget and the MS store. Currently DevHome only supports some applications and SDKs. Having full winget support would make it so much easier to setup new projects with the right SDKs and tools. :+1: this looks like a cool feature

mdanish-kh commented 8 months ago
  1. I dont see the ability to generate winget configuration files. This is something that Dev Home lacks and this particular GUI looks like a viable option to have that option. Importing, exporting, visualizing, editing winget configurations should be an option in dev home.

FYI: there's now a script now over at winget-create repo to help you create a winget configuration file. Currently it's very limited but it's a start.

  1. For all the packages installed, it should also be able to show where they are installed on the system and where they came from by hovering over the branches icon under Version and Status column (using winget metadata I guess...?). While at it, for installing winget packages through this interface, having options to install packages through a url, zip, or any other install/download option that winget supports would be very useful!

For portable packages, I imagine this should be possible through winget's metadata since WinGet acts as a logical installer for those packages and dictates where it should be put in the system & Registry. For other installers, it may not be a simple task. I'm thinking this would depend on

mdanish-kh commented 8 months ago

Use case

I don't want to install the package right away, but download its installer for a manual installation later.

Proposal

I would also like to see support for just downloading the version instead of installing it. WinGet has support for downloading packages via the winget download command that can be leveraged here.


Use case

Some packages I know don't behave well in a silent installation. It may default to installation in another location while I perform installations for packages in another drive or custom location.

Proposal

Some installers expose the ability to give a custom install location via the CLI args and that can be accessed through InstallerSwitches: Location field in a winget manifest. DevHome can expose a default install location settings field that users can set and if the installer honors the location switch, the custom location can be passed in. There should also be a way to select an install mode i.e., silent, silentWithProgress or interactive for a package.

Trenly commented 2 months ago

I would also like the ability to edit the data of the applications displayed in the list.

Use Case: An application doesn’t write the DisplayVersion into registry, making it show up as Unknown Proposal: Have an edit button per app entry where the package properties such as DisplayVersion can be updated. Updating the fields would update the registry values. Requires a user to confirm the changes they make could affect the ability to correlate packages or check for updates

thepro-3418 commented 2 months ago

You definitely don't need to do that, You can use Widgets for UniGetUI and UniGetUI

mdanish-kh commented 2 months ago

Use case

Help users author a WinGet manifest quickly. Additionally, detect when a user has a higher version of an app installed than what is available via a WinGet source. In this case, prompt the user for an opportunity to contribute the newer version to WinGet repo. Related to https://github.com/microsoft/winget-cli/issues/3327

Proposal

Have a user-friendly form/screen to fill taking in necessary metadata (version, InstallerUrl..etc) for contributing a package to WinGet repo. Integrate functionality of microsoft/winget-create to validate, create/update and submit the manifest to the community repo.

Mock Design? (click to show) Just a very rough image for visualizing my thoughts ![image](https://github.com/user-attachments/assets/1c6bab50-b750-4e9f-b26c-9ce9abc0a350)
joadoumie commented 2 months ago

@mdanish-kh - really like this idea.