Hirohito Higashi wrote:

> Hi Bram and Vimmers!
> 
> 2015-12-22(Tue) 5:44:27 UTC+9 Bram Moolenaar:
> > Since Vim is very stable, it does not happen often that a new version is
> > released.  Mostly it's fine to run an older version. Unless you run into
> > a bug there is no pressing reason to update.  With the result that many
> > users keep using the last official release, since that's just easier.
> > 
> > What does change between releases is the set of runtime files.  These
> > are updated more frequently, and often this is a more important reason
> > to update than getting all the patches.  We often see people complaining
> > about a syntax highlighting error that was already fixed.
> > 
> > There are various ways in which users can get an updated version,
> > including package managers or getting the latest with git and building
> > yourself.  For at least some people using git to get the latest version
> > is fine, but there is a large group of users, especially on MS-Windows
> > and Mac, for who this is not so easy.  For this group of users I'm
> > thinking of the following solution.
> > 
> > Include a plugin with Vim that provides the command:
> > 
> >     :RuntimeUpdate
> > 
> > This will get the latest files from github and put them under
> > $VIMRUNTIME.  The user can run this once in a while, e.g. when someone
> > mentions it will solve the problem he experiences.
> > 
> > How would this work?
> > 
> > - Include a file $VIMRUNTIME/CONTENTS that lists all the files, with a
> >   checksum or "DELETED".
> > - The plugin computes the checksum for the local file, and if it differs
> >   from the entry in CONTENTS it fetches the new file.  Github supports
> >   direct raw access, e.g.:
> >   https://raw.githubusercontent.com/vim/vim/master/runtime/syntax/vim.vim
> > - If the file was deleted, delete it (duh).
> > - If the $VIMRNTIME directory is not writable by the current user, put
> >   the updates in a temp directory and generate a shell script to move
> >   them into place.  The have one "sudo" command to do the work.
> > - Rely on the netrw plugin to download the files.
> > 
> > 
> > Some things that might cause problems:
> > - If the line endings are changed from LF to CR-LF then the checksum
> >   will always differ.  Perhaps we need two entries for each file, with
> >   and without CR-LF?
> > - I'm not sure how to put the files in place on MS-Windows if the
> >   current user can't write in the $VIMRUNTIME directory.  Create a .bat
> >   file perhaps?
> > - If the user has local changes, they will be lost.  We probably don't
> >   care. Files that the user adds are left alone, but they can get
> >   overwritten.
> > 
> > Comments are welcome.
> 
> Vim body and the runtime files until now had been provided at the same time.
> However, care must be taken a little When it comes to update only the runtime 
> files.
> If we use the new options or commands in runtime files, we will need to be 
> strictly a check is made using the has() or exists() than ever.
> Perhaps not to do so when the problem occurs frequently.

We could add a "minimum required version" in the CONTENTS file.  The
update command can use this to warn the user if his binary is outdated,
and only install the runtime files that match his version.

This can also function as a "check for updates" command.  We can tell
the user where a new version can be downloaded. The NSIS installer
doesn't support updating, but we already have this as a
uninstall-then-install sequence.

It's a bit more work, possibly runtime files can include a version in
the header, so the script that generates the CONTENTS file can pick it
up.

-- 
I have to exercise early in the morning before my brain
figures out what I'm doing.

 /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to