Vim 7.5 or Vim 8?

3,772 views
Skip to first unread message

Bram Moolenaar

unread,
Apr 4, 2016, 4:13:23 PM4/4/16
to vim...@googlegroups.com

I have been wondering if the next release should be called 7.5 or 8.
We have quite a few new features, but not that many as with the Vim 7
release. Well, that was a big release. I think the most important
addition since then is persistent undo in 7.3. Now we have more new
features than in 7.3 or 7.4. 7.1 and 7.2 were mostly bug fixes.

I have made a list of the most important improvements compared to Vim
7.4. I might still be missing some (let me know!).

Also, now is a good time to check out the new features, we can still
make changes. Especially the Channel, Job and timer support. Once the
release is out we can't really make changes that break backwards
compatibility.


-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Asynchronous I/O support, channels ~

Vim can now exchange messages with another process in the background. The
message are received and handled while Vim is waiting for a character. See
|channel-demo| for an example, communicating with a Python server.

Closely related to channels is JSON support. JSON is widely supported and can
easily be used for inter-process communication, allowing for writing a server
in any language. The functions to use are |json_encode()| and |json_decode()|.


Jobs ~

Vim can now start a job, communicate with it and stop it. This is very useful
to run a process for completion, syntax checking, etc. Channels are used to
communicate with the job. Jobs can also read from or write to a buffer or a
file. See |job_start()|.


Timers ~

Also asynchronous are timers. They can fire once or repeatedly and invoke a
function to do any work. For example: >
let tempTimer = timer_start(4000, 'CheckTemp')
This will make call 4 seconds later, like: >
call CheckTemp()


Partials ~

Vim already had a Funcref, a reference to a function. A partial also refers
to a function, and additionally binds arguments and/or a dictionary. This is
especially useful for callbacks on channels and timers. E.g., for the timer
example above, to pass an argument to the function: >
let tempTimer = timer_start(4000, function('CheckTemp', ['out']))
This will make call 4 seconds later, like: >
call CheckTemp('out')


New style tests ~

This is for Vim developers. So far writing tests for Vim has not been easy.
Vim 8 adds assert functions and a framework to run tests. This makes it a lot
simpler to write tests and keep them updated.

These functions have been added:
|assert_equal()|
|assert_notequal()|
|assert_exception()|
|assert_fails()|
|assert_false()|
|assert_match()|
|assert_notmatch()|
|assert_true()|
|alloc_fail()|
|disable_char_avail_for_testing()|


Window IDs ~

Previously windows could only be accessed by their number. And every time a
window would open, close or move that number changes. Each window now has a
unique ID, so that they are easy to find.


Vim script enhancements *new-vim-script-8*
-----------------------

In Vim scripts the following types have been added:

|Special| |v:false|, |v:true|, |v:none| and |v:null|
|Channel| connection to another process for asynchronous I/O
|Job| process control

Many functions and commands have been added to support the new types.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

--
hundred-and-one symptoms of being an internet addict:
223. You set up a web-cam as your home's security system.

/// Bram Moolenaar -- Br...@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 ///

Christian J. Robinson

unread,
Apr 4, 2016, 4:16:32 PM4/4/16
to vim...@googlegroups.com
On Mon, 4 Apr 2016, Bram Moolenaar wrote:

> I have been wondering if the next release should be called 7.5 or 8.

I'm inclined to think it should be version 8.

- Christian

--
Nurphy's law: Anything that can't be misspelled will be.
Christian J. Robinson <hep...@gmail.com> http://christianrobinson.name/

George V. Reilly

unread,
Apr 4, 2016, 4:25:53 PM4/4/16
to Vim Developers
On Mon, Apr 4, 2016 at 1:16 PM, Christian J. Robinson <hep...@gmail.com> wrote:
On Mon, 4 Apr 2016, Bram Moolenaar wrote:

I have been wondering if the next release should be called 7.5 or 8.

I'm inclined to think it should be version 8.


​+0.6​

-- 
/George V. Reilly  geo...@reilly.org  Twitter: @georgevreilly
 

Matteo Cavalleri

unread,
Apr 4, 2016, 4:44:04 PM4/4/16
to vim_dev
Il giorno lunedì 4 aprile 2016 22:13:23 UTC+2, Bram Moolenaar ha scritto:

> Asynchronous I/O support, channels ~
> Jobs ~
> Timers ~

I suppose these are going to be quite a big change for plugin developers, so 8.0 might be better

tux.

unread,
Apr 4, 2016, 4:48:21 PM4/4/16
to vim...@googlegroups.com
ASIO and Jobs alone should perfectly rectify going to 8.0.

Gary Johnson

unread,
Apr 4, 2016, 4:53:06 PM4/4/16
to Vim Developers
On 2016-04-04, George V. Reilly wrote:
> On Mon, Apr 4, 2016 at 1:16 PM, Christian J. Robinson wrote:
>
> On Mon, 4 Apr 2016, Bram Moolenaar wrote:
>
>
> I have been wondering if the next release should be called 7.5 or 8.
>
>
> I'm inclined to think it should be version 8.
>
>
>
> ​+0.6​

The next release of Vim will have a lot of improvements, but nothing
stands out to me (from my admittedly limited perspective) as enough
of a significant behavioral change to warrant bumping the major
revision number. Therefore I favor 7.5.

My 2¢.

Regards,
Gary

toothpik

unread,
Apr 4, 2016, 7:17:25 PM4/4/16
to vim...@googlegroups.com
On Mon, Apr 04, 2016 at 10:13:17PM +0200, Bram Moolenaar wrote:

> I have been wondering if the next release should be called 7.5 or 8.

my vote would be for 7.5 -- I run vim with option noloadplugins and I
don't [yet] see any significant improvements to how I use it

that said, I noticed you said

> This is for Vim developers. So far writing tests for Vim has not been easy.
> Vim 8 adds assert functions and a framework to run tests. This makes it a lot

which implies you are already thinking 8

--
_|_ _ __|_|_ ._ o|
|_(_)(_)|_| ||_)||<
|

tyru

unread,
Apr 4, 2016, 7:40:46 PM4/4/16
to vim...@googlegroups.com

Hi Bram,

2016/04/05 5:13 "Bram Moolenaar" <Br...@moolenaar.net>:


>
> I have made a list of the most important improvements compared to Vim
> 7.4.  I might still be missing some (let me know!).

maybe the following features are missing.

* Packages
* Emoji support
* GTK 3 support

Tony Mechelynck

unread,
Apr 4, 2016, 8:29:01 PM4/4/16
to vim_dev
On Mon, Apr 4, 2016 at 10:13 PM, Bram Moolenaar <Br...@moolenaar.net> wrote:
>
> I have been wondering if the next release should be called 7.5 or 8.
> We have quite a few new features, but not that many as with the Vim 7
> release. Well, that was a big release. I think the most important
> addition since then is persistent undo in 7.3. Now we have more new
> features than in 7.3 or 7.4. 7.1 and 7.2 were mostly bug fixes.
>
> I have made a list of the most important improvements compared to Vim
> 7.4. I might still be missing some (let me know!).
>
> Also, now is a good time to check out the new features, we can still
> make changes. Especially the Channel, Job and timer support. Once the
> release is out we can't really make changes that break backwards
> compatibility.
>
>
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>
> Asynchronous I/O support, channels ~
[...]
> Jobs ~
[...]
Both seem intimately related.
I don't (yet) use this but from the number of patches affecting it it
looks like a big feature.

> Timers ~
[...]
This may be small stuff compared to the rest but my little finger
tells me it's going to get important in the future.

> Partials ~
[...]
Deepening the already existing Funcref concept, making it more general.

> New style tests ~
[...]
I don't write tests myself, but this has already generated a host of
"new style" tests, i.e. tests written in vim-script with assertions,
rather than in normal-mode Vim code with a preset "correct result".
This obviously is already big in terms of applications.

> Window IDs ~
>
> Previously windows could only be accessed by their number. And every time a
> window would open, close or move that number changes. Each window now has a
> unique ID, so that they are easy to find.

I haven't yet played with this, but it also seems an important enhancement.

Oh, and there is still some other stuff, whose exact introduction
point I didn't notice at the time, such as the 'emoji' option which
was featured repeatedly in recent vim_dev posts.

>
>
> Vim script enhancements *new-vim-script-8*
> -----------------------
>
> In Vim scripts the following types have been added:
>
> |Special| |v:false|, |v:true|, |v:none| and |v:null|
> |Channel| connection to another process for asynchronous I/O
> |Job| process control
>
> Many functions and commands have been added to support the new types.
>
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>
> --
> hundred-and-one symptoms of being an internet addict:
> 223. You set up a web-cam as your home's security system.
>
> /// Bram Moolenaar -- Br...@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 ///

All in all, my impression is that this release will differ much more
from 7.4.0 than the latter differed from 7.3.0. OTOH, 6.0.0 was before
my time, and of the differences between 6.0.0 and 7.0.0, some (Unicode
support? vimgrep?) enjoyed a v6 minor release, while others (e.g. tab
pages) did not, so what are we to use as a standard for comparison?
7.0.0 "final" (I don't count alpha snapshots) vs. the last 6.x.0 minor
or vs. the first 6.0 major release?

IMHO this future release has enough going for it that calling it 8.0
won't sound out of place (or a case of "marketing boastfulness"), but
I've also seen the opposite opinion expressed while rapidly scanning
the previous responses, and while "feeling the field" is useful, I
think the final decision will rest with Bram alone, and I am prepared
to abide by it, whatever it finally will be.


Best regards,
Tony.

Yegappan Lakshmanan

unread,
Apr 4, 2016, 9:28:19 PM4/4/16
to vim_dev
Hi,

On Mon, Apr 4, 2016 at 1:13 PM, Bram Moolenaar <Br...@moolenaar.net> wrote:
>
> I have been wondering if the next release should be called 7.5 or 8.
> We have quite a few new features, but not that many as with the Vim 7
> release. Well, that was a big release. I think the most important
> addition since then is persistent undo in 7.3. Now we have more new
> features than in 7.3 or 7.4. 7.1 and 7.2 were mostly bug fixes.
>
> I have made a list of the most important improvements compared to Vim
> 7.4. I might still be missing some (let me know!).
>
> Also, now is a good time to check out the new features, we can still
> make changes. Especially the Channel, Job and timer support. Once the
> release is out we can't really make changes that break backwards
> compatibility.
>

Just my 2 cents:

There are still quite a few interesting features in the todo list and they
are sitting in the queue for quite some time (e.g. the variable
tabstop feature).
As it takes several years to release major Vim versions, it will be useful to
include few more major features now. The developers of these features
may not be around when the next major Vim version is released
and these patches will not be maintained and lost. Over the years (20 years),
I have seen this happen several times.

- Yegappan

Christian Brabandt

unread,
Apr 5, 2016, 2:27:25 AM4/5/16
to vim...@googlegroups.com
Am 2016-04-04 22:13, schrieb Bram Moolenaar:
> I have been wondering if the next release should be called 7.5 or 8.
> We have quite a few new features, but not that many as with the Vim 7
> release. Well, that was a big release. I think the most important
> addition since then is persistent undo in 7.3. Now we have more new
> features than in 7.3 or 7.4. 7.1 and 7.2 were mostly bug fixes.
>
> I have made a list of the most important improvements compared to Vim
> 7.4. I might still be missing some (let me know!).
>
> Also, now is a good time to check out the new features, we can still
> make changes. Especially the Channel, Job and timer support. Once the
> release is out we can't really make changes that break backwards
> compatibility.
>

While these are important changes for plugin developers,
I think a normal user won't notice much of those changes,
therefore I am voting for 7.5.

And I second Yegappan's idea to finally include the
vartab feature.


Best,
Christian

Dominique Pellé

unread,
Apr 5, 2016, 3:28:34 AM4/5/16
to vim_dev
Bram Moolenaar <Br...@moolenaar.net> wrote:

> I have been wondering if the next release should be called 7.5 or 8.
> We have quite a few new features, but not that many as with the Vim 7
> release. Well, that was a big release. I think the most important
> addition since then is persistent undo in 7.3. Now we have more new
> features than in 7.3 or 7.4. 7.1 and 7.2 were mostly bug fixes.

8.0 or 7.5 is a bit arbitrary without conventions such as:
- major version number increased when breaking backward
compatibility (which should be rare)
- middle version number increased when adding new features
- minor version increased for bug fixes

If we were to follow these conventions, then I suppose that the next
version would be vim-7.5. But either way is fine with me.

Here are some patches that I vote for, for the next version,
taken from todo.txt:

Patch to add GUI colors to the terminal, when it supports it. (ZyX, 2013 Jan
26, update 2013 Dec 14, another 2014 Nov 22)

Patch for variable tabstops. On github (Christian Brabandt, 2014 May 15)
Update 2016 Jan 31 (email).

Patch to improve equivalence classes in regexp patterns.
(Christian Brabandt, 2013 Jan 16, update Jan 17)

Regards
Dominique

LCD 47

unread,
Apr 5, 2016, 7:11:52 AM4/5/16
to vim...@googlegroups.com
On 4 April 2016, Bram Moolenaar <Br...@moolenaar.net> wrote:
>
> I have been wondering if the next release should be called 7.5 or 8.
> We have quite a few new features, but not that many as with the Vim 7
> release. Well, that was a big release. I think the most important
> addition since then is persistent undo in 7.3. Now we have more new
> features than in 7.3 or 7.4. 7.1 and 7.2 were mostly bug fixes.
[...]

+1 for 8.0, there have been a lot of major changes since 7.4.

The asynch I/O feature is not something "normal" users will care
for, since nothing uses it yet, but I'd fully expect it to become a
superhit in the future. :)

/lcd

David Fishburn

unread,
Apr 5, 2016, 8:16:18 AM4/5/16
to vim_dev
Vim 8.0 for me.

I think the possible changes to the plugins with the new features could make a very big difference.

Ken Takata

unread,
Apr 5, 2016, 8:58:07 AM4/5/16
to vim_dev
Hi Bram,

2016/4/5 Tue 5:13:23 UTC+9 Bram Moolenaar wrote:
> I have made a list of the most important improvements compared to Vim
> 7.4. I might still be missing some (let me know!).

I want to list two features:

* DirectWrite (DirectX) rendering support on MS-Windows:
It improves the quality of text rendering drastically.
* The breakindent patch:
It took 10 years to be merged. Wow!

Another notable thing (but not a new feature) is the nightly builds.
https://github.com/vim/vim-win32-installer

Regards,
Ken Takata

Nikolay Aleksandrovich Pavlov

unread,
Apr 5, 2016, 10:25:46 AM4/5/16
to vim_dev
2016-04-05 10:27 GMT+03:00 Dominique Pellé <dominiq...@gmail.com>:
> Bram Moolenaar <Br...@moolenaar.net> wrote:
>
>> I have been wondering if the next release should be called 7.5 or 8.
>> We have quite a few new features, but not that many as with the Vim 7
>> release. Well, that was a big release. I think the most important
>> addition since then is persistent undo in 7.3. Now we have more new
>> features than in 7.3 or 7.4. 7.1 and 7.2 were mostly bug fixes.
>
> 8.0 or 7.5 is a bit arbitrary without conventions such as:
> - major version number increased when breaking backward
> compatibility (which should be rare)
> - middle version number increased when adding new features
> - minor version increased for bug fixes
>
> If we were to follow these conventions, then I suppose that the next
> version would be vim-7.5. But either way is fine with me.
>
> Here are some patches that I vote for, for the next version,
> taken from todo.txt:
>
> Patch to add GUI colors to the terminal, when it supports it. (ZyX, 2013 Jan
> 26, update 2013 Dec 14, another 2014 Nov 22)

Actually this is incorrect description: not “when it supports it”, but
“when user has set 'guicolors'”. I do not know a way to detect this
kind of thing automatically.

>
> Patch for variable tabstops. On github (Christian Brabandt, 2014 May 15)
> Update 2016 Jan 31 (email).
>
> Patch to improve equivalence classes in regexp patterns.
> (Christian Brabandt, 2013 Jan 16, update Jan 17)
>
> Regards
> Dominique
>
> --
> --
> 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+u...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

Bram Moolenaar

unread,
Apr 5, 2016, 11:45:40 AM4/5/16
to tyru, vim...@googlegroups.com
Thanks. I think Emoji support is a minor thing. At least for most
people.

--
hundred-and-one symptoms of being an internet addict:
226. You sit down at the computer right after dinner and your spouse
says "See you in the morning."

Thomas Liebezeit

unread,
Apr 5, 2016, 1:49:26 PM4/5/16
to vim_dev
Hi all,

Am Dienstag, 5. April 2016 09:28:34 UTC+2 schrieb Dominique Pelle:
> Here are some patches that I vote for, for the next version,
> taken from todo.txt:
>

If I could wish, I would like to see my personal favorit added.
Its realy useful and avoids a brothersome tmp file in daily work:

Patch to add the :bvimgrep command. (Christian Brabandt, 2014 Nov 12)
Updated 2016 Feb 10

Yegappan Lakshmanan

unread,
Apr 5, 2016, 3:12:00 PM4/5/16
to vim_dev
Hi,
The following autocommands will be useful to the plugin developers:

Patch to add TabNew, TabNewEntered and TabClosed autocommand events.
(Felipe Morales, 2015 Feb 1)

- Yegappan

Ben Fritz

unread,
Apr 7, 2016, 1:18:54 AM4/7/16
to vim_dev
On Tuesday, April 5, 2016 at 2:28:34 AM UTC-5, Dominique Pelle wrote:
> Bram Moolenaar <Br...@moolenaar.net> wrote:
>
> > I have been wondering if the next release should be called 7.5 or 8.
> > We have quite a few new features, but not that many as with the Vim 7
> > release. Well, that was a big release. I think the most important
> > addition since then is persistent undo in 7.3. Now we have more new
> > features than in 7.3 or 7.4. 7.1 and 7.2 were mostly bug fixes.
>
> 8.0 or 7.5 is a bit arbitrary without conventions such as:
> - major version number increased when breaking backward
> compatibility (which should be rare)
> - middle version number increased when adding new features
> - minor version increased for bug fixes
>

I actually think 8.0 makes sense, due entirely to expected plugins that will require the new features.

Considering any plugins that start to require the new packages feature, IO/jobs/channels features, etc. may not work AT ALL in older Vims (instead of just degraded performance) I think it makes sense to let them say "requires Vim 8.0 and up".

Although Vim kept backwards compatibility, it introduced a bunch of features that will be hard to embrace fully in plugins and yet remain backwards compatible with older Vims.

Bram Moolenaar

unread,
Apr 7, 2016, 9:58:14 AM4/7/16
to Ben Fritz, vim_dev

Ben Fritz wrote:

> On Tuesday, April 5, 2016 at 2:28:34 AM UTC-5, Dominique Pelle wrote:
> > Bram Moolenaar <Br...@moolenaar.net> wrote:
> >
> > > I have been wondering if the next release should be called 7.5 or 8.
> > > We have quite a few new features, but not that many as with the Vim 7
> > > release. Well, that was a big release. I think the most important
> > > addition since then is persistent undo in 7.3. Now we have more new
> > > features than in 7.3 or 7.4. 7.1 and 7.2 were mostly bug fixes.
> >
> > 8.0 or 7.5 is a bit arbitrary without conventions such as:
> > - major version number increased when breaking backward
> > compatibility (which should be rare)
> > - middle version number increased when adding new features
> > - minor version increased for bug fixes
>
> I actually think 8.0 makes sense, due entirely to expected plugins
> that will require the new features.
>
> Considering any plugins that start to require the new packages
> feature, IO/jobs/channels features, etc. may not work AT ALL in older
> Vims (instead of just degraded performance) I think it makes sense to
> let them say "requires Vim 8.0 and up".

Thanks, that is a good point. It's a clear point where Vim started to
support async I/O and associated features. Stuff that plugins will
require and older Vim versions won't support.

We better make sure it works nicecly in Vim 8.0.0!

> Although Vim kept backwards compatibility, it introduced a bunch of
> features that will be hard to embrace fully in plugins and yet remain
> backwards compatible with older Vims.

--
hundred-and-one symptoms of being an internet addict:
240. You think Webster's Dictionary is a directory of WEB sites.

Charles E Campbell

unread,
Apr 7, 2016, 1:15:02 PM4/7/16
to vim...@googlegroups.com
Bram Moolenaar wrote:
> I have been wondering if the next release should be called 7.5 or 8.
> We have quite a few new features, but not that many as with the Vim 7
> release. Well, that was a big release. I think the most important
> addition since then is persistent undo in 7.3. Now we have more new
> features than in 7.3 or 7.4. 7.1 and 7.2 were mostly bug fixes.
>
> I have made a list of the most important improvements compared to Vim
> 7.4. I might still be missing some (let me know!).
>
> Also, now is a good time to check out the new features, we can still
> make changes. Especially the Channel, Job and timer support. Once the
> release is out we can't really make changes that break backwards
> compatibility.
>
Do you have Big Improvements on the horizon? If not, I'd go for v8.

* Would love to see Christian B's
:breaka[dd] expr {string}
patch get included (allows for something like gdb's watchpoints)

* Would like it if my folding patch got included (straightens up the
folded display)

Regards,
Chip Campbell

单眼皮

unread,
Apr 8, 2016, 2:06:40 AM4/8/16
to vim...@googlegroups.com
+10024

Diego Viola

unread,
Apr 13, 2016, 1:40:29 PM4/13/16
to vim_dev

Vim 8, also please adopt a sane version number policy after this release, vim 7.4.1689-1 is starting to look a bit silly.

Especially the last huge number at the end.

Elimar Riesebieter

unread,
Apr 13, 2016, 2:26:37 PM4/13/16
to vim_dev
* Dominique Pellé <dominiq...@gmail.com> [2016-04-05 09:27 +0200]:

> Bram Moolenaar <Br...@moolenaar.net> wrote:
>
> > I have been wondering if the next release should be called 7.5 or 8.
> > We have quite a few new features, but not that many as with the Vim 7
> > release. Well, that was a big release. I think the most important
> > addition since then is persistent undo in 7.3. Now we have more new
> > features than in 7.3 or 7.4. 7.1 and 7.2 were mostly bug fixes.
>
> 8.0 or 7.5 is a bit arbitrary without conventions such as:
> - major version number increased when breaking backward
> compatibility (which should be rare)
> - middle version number increased when adding new features
> - minor version increased for bug fixes
>
> If we were to follow these conventions, then I suppose that the next
> version would be vim-7.5. But either way is fine with me.

+1

Elimar
--
"Talking much about oneself can also
be a means to conceal oneself."
-Friedrich Nietzsche

Michael Jarvis

unread,
Apr 13, 2016, 4:01:26 PM4/13/16
to vim_dev
On Tuesday, April 5, 2016 at 2:28:34 AM UTC-5, Dominique Pelle wrote:
> Bram Moolenaar wrote:
>
> > I have been wondering if the next release should be called 7.5 or 8.
> > We have quite a few new features, but not that many as with the Vim 7
> > release. Well, that was a big release. I think the most important
> > addition since then is persistent undo in 7.3. Now we have more new
> > features than in 7.3 or 7.4. 7.1 and 7.2 were mostly bug fixes.
>
> 8.0 or 7.5 is a bit arbitrary without conventions such as:
> - major version number increased when breaking backward
> compatibility (which should be rare)
> - middle version number increased when adding new features
> - minor version increased for bug fixes

I informally think of Vim by putting the patch number as a third minor version, similar to the "Semantic Versioning" standard (http://semver.org/) that we use at my place of employment.

For example, instead of "Vim 7.4, patches 1-1726," I mentally think, "Vim 7.4.1726".

Maybe it's time to make this an official nomenclature?

This does break the model where some people selectively cherry-pick patches, and use something like, "Vim 7.4 with patches 1-5,9-33,1024-1726." In the "old days", sometimes people lacked quality Internet access to the old CVS repository and would have to manually patch their Vim source code from the emailed diffs. If they were only concerned with Vim on a given architecture, they could theoretically skip patches that didn't apply to them.

I would argue that number one, this is NOT a good idea, because the source code changes are cumulative. Trying to do regression testing on 7.4 plus every combination of the current 1726 patches would be nearly impossible to implement and manage. I think you should always apply ALL the patches, even the ones that might not apply to your situation, just to avoid side effects.

Number two, I don't think this use case still applies. I doubt that very many people still download a tarball of the Vim 7.4 source code, and then manually apply each and every diff based on the email attachments from Bram. I could be wrong, but Internet access is more common now, and ever since we switched to first Mercurial and now Git it has become very easy to get the latest "snapshot" of the code.

Finally, this is just a hunch, but I bet most maintainers that bundle Vim for various operating systems just bundle up the latest stable patch release when they do a freeze.

So I do not have a strong opinion on whether or not we call the next generation version 7.5 or 8.0. I do, however, think we should start appending the patch level as the third "minor" release number.

Thoughts?

-maj

Charles E Campbell

unread,
Apr 13, 2016, 4:39:52 PM4/13/16
to vim...@googlegroups.com
Michael Jarvis wrote:
> On Tuesday, April 5, 2016 at 2:28:34 AM UTC-5, Dominique Pelle wrote:
>> Bram Moolenaar wrote:
>>
>>> I have been wondering if the next release should be called 7.5 or 8.
>>> We have quite a few new features, but not that many as with the Vim 7
>>> release. Well, that was a big release. I think the most important
>>> addition since then is persistent undo in 7.3. Now we have more new
>>> features than in 7.3 or 7.4. 7.1 and 7.2 were mostly bug fixes.
>> 8.0 or 7.5 is a bit arbitrary without conventions such as:
>> - major version number increased when breaking backward
>> compatibility (which should be rare)
>> - middle version number increased when adding new features
>> - minor version increased for bug fixes
> I informally think of Vim by putting the patch number as a third minor version, similar to the "Semantic Versioning" standard (http://semver.org/) that we use at my place of employment.
>
> For example, instead of "Vim 7.4, patches 1-1726," I mentally think, "Vim 7.4.1726".
>
> Maybe it's time to make this an official nomenclature?
>
> This does break the model where some people selectively cherry-pick patches, and use something like, "Vim 7.4 with patches 1-5,9-33,1024-1726." In the "old days", sometimes people lacked quality Internet access to the old CVS repository and would have to manually patch their Vim source code from the emailed diffs. If they were only concerned with Vim on a given architecture, they could theoretically skip patches that didn't apply to them.
>
> I would argue that number one, this is NOT a good idea, because the source code changes are cumulative. Trying to do regression testing on 7.4 plus every combination of the current 1726 patches would be nearly impossible to implement and manage. I think you should always apply ALL the patches, even the ones that might not apply to your situation, just to avoid side effects.
>
> Number two, I don't think this use case still applies. I doubt that very many people still download a tarball of the Vim 7.4 source code, and then manually apply each and every diff based on the email attachments from Bram. I could be wrong, but Internet access is more common now, and ever since we switched to first Mercurial and now Git it has become very easy to get the latest "snapshot" of the code.
>
I did -- because patch #866 broke a plugin I use. Fortuitously, a
(much) later patch fixed the problem, so I'm now using Git.

Regards,
Chip Campbell

Reply all
Reply to author
Forward
0 new messages