I want to be able to update my loveviewer by downloading only the changes, not a whole new viewer.
Create a new installer that gets only the binary installer diff between my current version and the latest version (or whatever best-practice approach folks are now using for this). Make "Check for Updates" an option in the viewer File and Help menus, and also check for updates automatically when the viewer is started.
Successful completion of this project means I can download the new installer, launch it, and watch it work for the first time by only making a small download!
| Who | Bid Amount | Done In |
| *name hidden* | $ *** | 1 mnth, 3 days ago |
| Who | Amount | Description | Date | Paid |
| Philip | $ 40.00 | Design | 06/29/2010 | No |
| Pera | $ 280.00 | Accepted Bid | 07/30/2010 | No |
| Total | $ 320.00 | |||
That is exactly what the proposal indended - endusers can download only bits that changed. The confusing part was probably showing the command lines in the description. The enduser will never have to see those svn commands, the commands will be hidden behind the standard gui.
I'll be glad to demonstrate the benefits of this approach.
If we have used DLL's and only a DLL file or a few dlls have been updated then we can only download these few files.
Our source is written in c++. 1 line of c++ translates to many lines of machine language(1:many ratio).
1 assembly line translates to 1 line of machine language(1:1 ratio).
My opinion is that while it is possible it will be very difficult for engineers to create such feature and also the error margin is too high.
So, I proposed the following:
- 3 new directories are made in SVN tree, one for OSX, one for Windows and one for Linux.
- Each directory holds all files (binaries, libs, images, configs, etc). Not the installer, but actual files contained within. Did I already say not installer, but unpacked files :)
- For initial install the download is only about 50k, which will set up install directory and download files from the repository (do not confuse source code repository with this "installation" repository, althou the technology behind both is the same - SVN).
- On the next run, simple "svn update" will check and update enything that was changed in the meantime in the "installation" repository. This command is invisible to enduser, who will only see nice progress bar in a window.
- SVN uses zlib for compression of everything it passes through the socket, so no worries about that.
- Yes, it is possible to write the whole updater app and system from scratch, but the lovemachine repository is already SVN - it will be a waste of resources not to use it.
dmg_installer_size = 52M
installed_size = 171M
number_of_installed_files = 4223
largest_file = 69M (gzipped 22M) [llplugin/libllqtwebkit.dylib]
second_largest_file = 41M (gzipped 14M) [LoveViewer]