nopSolutions / nopCommerce

ASP.NET Core eCommerce software. nopCommerce is a free and open-source shopping cart.
https://www.nopcommerce.com
Other
9.19k stars 5.28k forks source link

Improvement to plugin versioning/updating #6761

Closed danFbach closed 4 months ago

danFbach commented 1 year ago

The issue I have, as a maintainer of a nop store, is that I have plugins from various third party sources and the only way to know if a publisher has released a new build is to manually go to their website, download the most recent version, compare the build numbers...it's very inconvenient, tedious and is ripe for improvement. If an average user is trying to maintain a store, handling plugins is challenging.

GetCurrentVersionURI

If no auto URL is provided, show the provided manual url so the user can retrieve the update manually. To be used when the download behind a login screen. If the response provided by the developer included an auto url, nop could, upon user request, fetch the update itself and apply it. Although some security may need to be added, like a hash of the zip file included in JSON similar to how linux repos handle validation...or something to that effect.

If developers provided all of the information in JSON example, you could even stage a store for version upgrades more easily. In one shot, you could see what plugins have updates available for the nop version you're planning to upgrade to, and if the plugins have the auto property, the new version of the plugins could be automatically installed immediately after nop itself has been upgraded.

Of course, this would require developers to opt-in, but I think most would want to. I think one of nop's biggest drawbacks is the technical knowledge needed to manage and maintain a store, and I think this feature could reduce some of that.

I would be happy to contribute to building such a feature.

cklenk commented 1 year ago

This would be awesome! I agree it's a pain to always go out and check the marketplace and see if a plugin was updated.

AndreiMaz commented 4 months ago

After some consideration we've decided not to implement this functionality out of the box and leave it for customization