cfillion / reapack

📦 Package manager for REAPER
https://reapack.com
GNU Lesser General Public License v3.0
316 stars 23 forks source link

FR: Option Install New Package when sync should be on by default #64

Open X-Raym opened 1 year ago

X-Raym commented 1 year ago

Hi,

I think the option Install New Package when synchronizing should be on by default. It is the expected behavior IMHO.

Else, it can be easy for new users to miss some new scripts, when then sync.

Thx!

cfillion commented 1 year ago

I don't like that idea. It goes against the principle of least surprise & is the opposite of any other package manager. When installing a Linux OS, brew/macports on macOS, chocolatey/winget on Windows, one does not expect the whole world to be auto-installed, but rather only what the user wants.

I think ReaPack should work in a standard way out of the box. It would be very surprising to suddenly have thousands of unnecessary files installed out of the blue.

Perhaps it would be better to improve the first-use experience, for instance instead of just opening the "Manage repositories" window and letting users figure it out from there, it could show some kind of "Welcome" screen explaining the basics, including asking if they would like the auto-install mode enabled?

X-Raym commented 1 year ago

@cfillion I agree to the 'install nothing' out of the box principle, But I think when after having explicitly checking a repo, it is implied that you are subscribing to it and want to get the news packages by default at new sync - as the defaut option to install all the repo is also activated. Having this set out of the box doesnt change anything to the first run / sync of reapack so there is no surprise. I think the surprise is when user think they are subscribed to a repo new packages but they are in fact just subscribed to the packages which where released when they installed reapack and made their first sync.

If no change of this option default per defaut then it may nice to at least have this toggable right on the window without dropdown so the user have less chance to miss this critical options which is IMHO what most user expect from reapack. Report about this is rare, but user dont know what they don't know ^^ I'm sure some users think the checkox means 'subsribe' and have missed the options as it is in a dropdown.

What do you think?

cfillion commented 1 year ago

Only enabling auto-install for manually imported repository would be the same: instead of only adding a new source of packages to populate the list it would suddenly start installing all of them. And then it would be inconsistent with the behavior of the stock repos... Of course some do want that behavior, hence the option, but I don't think it should be on by default.

Did you have a specific issue in mind this would solve, such as new dependencies not being auto-installed?

X-Raym commented 1 year ago

I wasn't considering having a distinction between built-in repos and manually added repos.

And if the user prefer to not sync everything from the repo then of course installing new package for this repo should be off by default.

The issue in mind is for eg:

  1. ask a user to install reapack
  2. user sync reapack
  3. you have a script to the repo
  4. user sync
  5. user don't have the script cause he didn't see the "install new script at sync" menu.

this is off by default, unless I am mistaken

New dependencies not being installed (and not using provide system) could also happen but this is more edge cases I think.

cfillion commented 1 year ago

If there's no distinction then it's back to the unexpected behavior of having synchronizing install plenty of unwanted things instead of its standard purpose of refreshing the list of available packages + update installed contents.

Picking-and-choosing what to install from the browser is the safest & less-surprising out-of-the-box choice in my opinion.

I do agree that the possibility of enabling that option could be better presented to new users. Like previously mentioned, I can imagine a better "Welcome" window than this "Manage repositories". Something that says "thanks for installing ReaPack", guide with how to find and install packages, ask what they want synchronize to do...

ReaPack's UI is certainly due for an overhaul once a certain UI framework I'm working on becomes mature enough for it... 😉