Support updating tools #74

Open
Tinche opened this Issue Feb 14, 2015 · 1 comment

Comments

Projects
None yet
2 participants
Contributor

Tinche commented Feb 14, 2015

Ok, the Twitter website just crashed my Firefox while I was in the middle of writing this up, so this writeup is gonna be shorter. :p

Some tools can update themselves - stuff from PPAs, JetBrains, Eclipse, Android stuff I think. This doesn't concern these tools.

Some tools can't, like go-lang and probably any other language support we add in the future. We should have an upgrade workflow for these tools.

Actually upgrading the tools should be easy due to our policy of always getting the latest upstream - remove&install. What we should improve is the way users know what needs to be updated.

A subset of our tools should support reporting the version of a tool back. So when we install a tool, the version goes into the config file.

Then users can ask umake - list all tools that have updates. We go through all installed tools from the config file, check if their modules support versioning. If they do, fetch latest upstream version, compare with the current version (if current version is missing, because the tool was installed before we added support for versions, flag as 'update available') and list everything that can be updated.

Owner

didrocks commented Feb 17, 2015

The short version was good as well.

Agreed with what I had in my head:

  • we should let tools that can autoupdate deal with the user directly and not interfering into that flow (as of today).
  • we should have a way to propose updates for other platforms we support. I wonder though how can we ensure the update will be successful, like if there are some update scripts requires (it happens quite a lot already on the desktop, we workaround this with services like session-migration). How can we spot and test that with real use case scenario as this can be buried in some options Y that is only for smoe user? Optionally, how can be able to rollback (knowing that some configuraiton file may have been upgraded to latest version, and not being compatible with older)?

Maybe I'm trying to overcomplexify it and we should just compare version, hope for the best, what do you think?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment