Skip to content
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

Feature request: Export and Import group of packages #111

Closed
harleylara opened this issue Aug 23, 2022 · 6 comments
Closed

Feature request: Export and Import group of packages #111

harleylara opened this issue Aug 23, 2022 · 6 comments
Labels
new-feature A new feature that could be useful in WingetUI ready-to-go

Comments

@harleylara
Copy link
Contributor

harleylara commented Aug 23, 2022

Hi Marti, I would like to start by saying that this is an incredible project ✨!!

I just realize this is a very long text 😅

I was thinking about adding some features like exporting a group of packages that are already installed and another option to import a file and install a set of packages.

Let me tell you a little bit about the motivation behind this feature: I am about to format my computer (running Windows) and I want to avoid the tedious and painful process of having to manually re-install all my software one by one 😩🔫, so I thought that using WingetUI I can use the "Installed packages" section to export the list of packages I need, then I can import that file into the computer with the fresh Windows and install everything. So instead of spending a lot of my time re-installing everything manually, I can spend that time implementing that function in WingetUI 😎.

Current status: Yesterday I was reading the source code and made a small proof of concept to export the packages and it works quite well (check the image below), I tested it in a virtual machine with fresh windows and it works great... DISCLAIMER: I haven't implemented the functionality to import the file in WingetUI so I'm currently using winget-cli to import it.

image

[Edit 1]: I need to check why it does not show the icons when the program is executed from the source code 😅.

As you can see in the image at the moment there is only one option to select the packages you want and a button to export them. At the moment the export file is only for winget based on this JSON Schema, but of course would be nice to have a solution for Scoop.

I would love to contribute to the project, but first I would like to know if you have any specific plans for WingetUI 1.4 ? ... maybe these characteristics can be included in version 1.4.

It's time for some questions

  • I love the UI and it would be great to keep it this clean. What do you think for now?... I was thinking of changing the width of the button to fit the text and align it to the right 🤔
  • The option to import a file can be used mainly to install a group of packages, should this be integrated in the MainWindow of the application? I was thinking about a Windows Popup to prevent other actions in the UI while WingetUI is installing... but I would like to hear if you have any suggestions.
  • Regarding the export file do you think it makes sense to do something like {"winget": allpackages, "scoop": allpackages} and both contain the schema they need to work using the cli of either winget or scoop?

Best regards

  • Harley Lara
@marticliment
Copy link
Owner

Hi @harleylara,

So instead of spending a lot of my time re-installing everything manually, I can spend that time implementing that function in WingetUI 😎.

Why spend 1 minute doing a job when you can spend 10 automating it?. I also daily use this idea 😂

No, seriously.
First of all, thank you for willing to contribute! I've been busy and i haven't had the chance to maintain a little bit more WingetUI. However, this is (hopefully) going to change soon.

This feature was a plan, but i didn't have time to make it. But for sure, if you want to PR it, i will definitely merge it and include it with the next version!

  • I love the UI and it would be great to keep it this clean. What do you think for now?... I was thinking of changing the width of the button to fit the text and align it to the right 🤔

Yes, this makes sense. I guess between 100 and 300px fixed width should do fine.

  • The option to import a file can be used mainly to install a group of packages, should this be integrated in the MainWindow of the application? I was thinking about a Windows Popup to prevent other actions in the UI while WingetUI is installing... but I would like to hear if you have any suggestions.

As I thought of it, it would be an import button that just added a single install for each program (to see the status of each program individually and see the details of the errors that might occurr during installations). However, the code that handles the installs is quite messy (as you might have already realised), so i can perfectly implement this part if you don't want to.

  • Regarding the export file do you think it makes sense to do something like {"winget": allpackages, "scoop": allpackages} and both contain the schema they need to work using the cli of either winget or scoop?

This is a definitely useful approach, because if in a future i happen to add another CLI, it would be easy to append it as another entry. I like the idea!

Lots of thanks!

Martí

@marticliment
Copy link
Owner

Hi @harleylara,

I don't know if you still want to PR this feature, but if you do, please note that:
Due to some health improvements to the code and rebases, you'll have tons of conflicts between the main branch and yours, so i say (if you want) you can send me by email your branch (whenever you have finished) and i'll fix the conflicting and push it to main, (obviously giving you credit).

@ppvnf
Copy link
Contributor

ppvnf commented Sep 21, 2022

Hello @harleylara and @martinet101, this idea is pretty cool! It would be very useful to be able to import/export scoop and winget packages through a GUI. Scoop also has a command to export a package list so I hope it will be possible to implement it in WingetUI in the future (I am not a developer tho so I can't help much unfortunately). I saw this discussion about scoop export and found the commands used quite scary, which makes me even more eager to have a GUI alternative. If you wish to have me test anything, please contact me.

Best wishes,

ppvnf

@harleylara
Copy link
Contributor Author

Hello @martinet101

Sorry for the long time without replying, I was on vacation but I'm back on track 😃 . Honestly I'm very happy to see that the project has advanced a lot in such a short time, that's incredible and admirable. Regarding PR I still plan to do it but as you say there will be many conflicts and it's not fair that you have to spend time to solve it (I guess you have other things on your plate), so in the next few days I will be reviewing the changes and I will open a PR without conflicts with main, but anyway thank you very much for the offer to do it yourself.

@marticliment
Copy link
Owner

Sorry for the long time without replying

No problem, everybody needs vacation!

And please don't feel pushed and take the time you need ;)

@marticliment marticliment added ready-to-go and removed waiting-for-something This issue depends on something before we can resolve it labels Oct 1, 2022
@marticliment
Copy link
Owner

The "import packages" will come with the next version. It is present on the latest head now (I forgro to link this issue to the commit)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-feature A new feature that could be useful in WingetUI ready-to-go
Projects
None yet
Development

No branches or pull requests

3 participants