Compare commits

..

17 Commits

Author SHA1 Message Date
Justin M. Keyes
2ccc716c4a NVIM v0.3.3
This maintenance release fixes some issues found in v0.3.2 .

FIXES:

a597ab8d1b #9442 Merge pull request from jamessan/revert-pynvim
    d7b3ac029c health/provider: Check for available pynvim when neovim module missing
    edeb19d5e9 python#CheckForModule: Use the given module string instead of hard-coding pynvim
    0dd89cda9c {health,provider}/python: Import the neovim, rather than pynvim, module
fc6e8a4db8 #9423 TUI: Konsole DECSCUSR fixup
2019-01-04 20:05:23 +01:00
Justin M. Keyes
4e23f3e180 release.sh: Format issue-numbers in descriptions [ci skip] 2019-01-04 20:05:08 +01:00
Justin M. Keyes
8b3113ce7a release.sh: fix exclusion pattern [ci skip]
grep support of "\s" pattern is unreliable.
2019-01-04 20:05:08 +01:00
James McCoy
a597ab8d1b Merge pull request #9442 from jamessan/revert-pynvim
Rework Python provider/health check to use neovim module again
2019-01-02 12:14:29 -05:00
James McCoy
d7b3ac029c health/provider: Check for available pynvim when neovim module missing
Adapt the checks so we can still report when the pynvim module is
present but the neovim module is missing.
2019-01-01 20:38:28 -05:00
James McCoy
60e3cf6247 Merge pull request #9439 from jamessan/more-fragile-tests
Mark a few more functionaltests as fragile
2019-01-01 16:07:10 -05:00
James McCoy
edeb19d5e9 python#CheckForModule: Use the given module string instead of hard-coding pynvim 2019-01-01 16:06:37 -05:00
James McCoy
0dd89cda9c {health,provider}/python: Import the neovim, rather than pynvim, module
The neovim module is available for backwards compatibility.  We should
not yet force the use of the pynvim module, since there's no other major
reason to bump the minimum supported Python client module.

Closes #9426
2019-01-01 14:15:31 -05:00
James McCoy
fc6e8a4db8 Merge pull request #9435 from jamessan/tui-konsole
TUI: Konsole DECSCUSR fixup (#9423)
2019-01-01 13:28:05 -05:00
James McCoy
2fbe28bc05 Mark "shell command :! throttles shell-command output greater than ~10KB" fragile 2019-01-01 11:27:52 -05:00
James McCoy
b5de158fdf Mark "feeding large chunks of input with <Paste>" fragile 2019-01-01 11:27:23 -05:00
James McCoy
e53e56d5e5 Mark ":substitute with inccommand during :terminal activity" fragile 2019-01-01 11:26:56 -05:00
Justin M. Keyes
f3260129ad TUI: Konsole DECSCUSR fixup (#9423)
Apparently Konsole's terminfo is still broken.

ref #9364
closes #9420
2019-01-01 11:18:46 -05:00
James McCoy
340d853585 Merge pull request #9433 from jamessan/only-lint-master
travis: Only run lint job for master branch/PRs
2019-01-01 09:23:37 -05:00
James McCoy
57e0a578f0 travis: Only run lint job for master branch/PRs 2019-01-01 09:15:51 -05:00
James McCoy
83fca0ab13 travis: Run ci for release-* branches 2019-01-01 08:14:54 -05:00
James McCoy
fb815bd7b7 version bump 2019-01-01 08:10:13 -05:00
10 changed files with 55 additions and 24 deletions

View File

@@ -74,7 +74,8 @@ jobs:
- os: osx - os: osx
compiler: gcc compiler: gcc
osx_image: xcode9.4 # macOS 10.13 osx_image: xcode9.4 # macOS 10.13
- os: linux - if: branch = master
os: linux
env: CI_TARGET=lint env: CI_TARGET=lint
- stage: Flaky builds - stage: Flaky builds
os: linux os: linux
@@ -126,6 +127,7 @@ addons:
branches: branches:
only: only:
- master - master
- /^release-\d+\.\d+$/
cache: cache:
apt: true apt: true

View File

@@ -112,7 +112,7 @@ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY
# version string, else they are combined with the result of `git describe`. # version string, else they are combined with the result of `git describe`.
set(NVIM_VERSION_MAJOR 0) set(NVIM_VERSION_MAJOR 0)
set(NVIM_VERSION_MINOR 3) set(NVIM_VERSION_MINOR 3)
set(NVIM_VERSION_PATCH 2) set(NVIM_VERSION_PATCH 3)
set(NVIM_VERSION_PRERELEASE "") # for package maintainers set(NVIM_VERSION_PRERELEASE "") # for package maintainers
# API level # API level

View File

@@ -192,9 +192,9 @@ function! s:version_info(python) abort
let nvim_path = s:trim(s:system([ let nvim_path = s:trim(s:system([
\ a:python, '-c', \ a:python, '-c',
\ 'import sys; sys.path.remove(""); ' . \ 'import sys; sys.path.remove(""); ' .
\ 'import pynvim; print(pynvim.__file__)'])) \ 'import neovim; print(neovim.__file__)']))
if s:shell_error || empty(nvim_path) if s:shell_error || empty(nvim_path)
return [python_version, 'unable to load pynvim Python module', pypi_version, return [python_version, 'unable to load neovim Python module', pypi_version,
\ nvim_path] \ nvim_path]
endif endif
@@ -206,13 +206,13 @@ function! s:version_info(python) abort
return a == b ? 0 : a > b ? 1 : -1 return a == b ? 0 : a > b ? 1 : -1
endfunction endfunction
" Try to get pynvim.VERSION (added in 0.1.11dev). " Try to get neovim.VERSION (added in 0.1.11dev).
let nvim_version = s:system([a:python, '-c', let nvim_version = s:system([a:python, '-c',
\ 'from pynvim import VERSION as v; '. \ 'from neovim import VERSION as v; '.
\ 'print("{}.{}.{}{}".format(v.major, v.minor, v.patch, v.prerelease))'], \ 'print("{}.{}.{}{}".format(v.major, v.minor, v.patch, v.prerelease))'],
\ '', 1, 1) \ '', 1, 1)
if empty(nvim_version) if empty(nvim_version)
let nvim_version = 'unable to find pynvim Python module version' let nvim_version = 'unable to find neovim Python module version'
let base = fnamemodify(nvim_path, ':h') let base = fnamemodify(nvim_path, ':h')
let metas = glob(base.'-*/METADATA', 1, 1) let metas = glob(base.'-*/METADATA', 1, 1)
\ + glob(base.'-*/PKG-INFO', 1, 1) \ + glob(base.'-*/PKG-INFO', 1, 1)
@@ -415,17 +415,18 @@ function! s:check_python(version) abort
call health#report_info('Python version: ' . pyversion) call health#report_info('Python version: ' . pyversion)
if s:is_bad_response(status) if s:is_bad_response(status)
call health#report_info(printf('pynvim version: %s (%s)', current, status)) call health#report_info(printf('pynvim version: %s (%s)', current, status))
else
call health#report_info(printf('pynvim version: %s', current))
let [module_found, _msg] = provider#pythonx#CheckForModule(python_bin, let [module_found, _msg] = provider#pythonx#CheckForModule(python_bin,
\ 'neovim', a:version) \ 'pynvim', a:version)
if !module_found if status !=? '^outdated' && module_found
" neovim module was not found, but pynvim was
call health#report_error('Importing "neovim" failed.', call health#report_error('Importing "neovim" failed.',
\ "Reinstall \"pynvim\" and optionally \"neovim\" packages.\n" . \ "Reinstall \"pynvim\" and optionally \"neovim\" packages.\n" .
\ pip ." uninstall pynvim neovim\n" . \ pip ." uninstall pynvim neovim\n" .
\ pip ." install pynvim\n" . \ pip ." install pynvim\n" .
\ pip ." install neovim # only if needed by third-party software") \ pip ." install neovim # only if needed by third-party software")
endif endif
else
call health#report_info(printf('pynvim version: %s', current))
endif endif
if s:is_bad_response(current) if s:is_bad_response(current)

View File

@@ -10,7 +10,7 @@ function! provider#pythonx#Require(host) abort
" Python host arguments " Python host arguments
let prog = (ver == '2' ? provider#python#Prog() : provider#python3#Prog()) let prog = (ver == '2' ? provider#python#Prog() : provider#python3#Prog())
let args = [prog, '-c', 'import sys; sys.path.remove(""); import pynvim; pynvim.start_host()'] let args = [prog, '-c', 'import sys; sys.path.remove(""); import neovim; neovim.start_host()']
" Collect registered Python plugins into args " Collect registered Python plugins into args
let python_plugins = remote#host#PluginsForHost(a:host.name) let python_plugins = remote#host#PluginsForHost(a:host.name)
@@ -40,7 +40,7 @@ function! provider#pythonx#Detect(major_ver) abort
let errors = [] let errors = []
for prog in progs for prog in progs
let [result, err] = provider#pythonx#CheckForModule(prog, 'pynvim', a:major_ver) let [result, err] = provider#pythonx#CheckForModule(prog, 'neovim', a:major_ver)
if result if result
return [prog, err] return [prog, err]
endif endif
@@ -75,12 +75,12 @@ function! provider#pythonx#CheckForModule(prog, module, major_version) abort
let min_version = (a:major_version == 2) ? '2.6' : '3.3' let min_version = (a:major_version == 2) ? '2.6' : '3.3'
" Try to load pynvim module, and output Python version. " Try to load module, and output Python version.
" Exit codes: " Exit codes:
" 0 pynvim module can be loaded. " 0 module can be loaded.
" 2 pynvim module cannot be loaded. " 2 module cannot be loaded.
" Otherwise something else went wrong (e.g. 1 or 127). " Otherwise something else went wrong (e.g. 1 or 127).
let [prog_exitcode, prog_version] = s:import_module(a:prog, 'pynvim') let [prog_exitcode, prog_version] = s:import_module(a:prog, a:module)
if prog_exitcode == 2 || prog_exitcode == 0 if prog_exitcode == 2 || prog_exitcode == 0
" Check version only for expected return codes. " Check version only for expected return codes.
@@ -94,7 +94,7 @@ function! provider#pythonx#CheckForModule(prog, module, major_version) abort
endif endif
if prog_exitcode == 2 if prog_exitcode == 2
return [0, prog_path.' does not have the "pynvim" module. :help provider-python'] return [0, prog_path.' does not have the "' . a:module . '" module. :help provider-python']
elseif prog_exitcode == 127 elseif prog_exitcode == 127
" This can happen with pyenv's shims. " This can happen with pyenv's shims.
return [0, prog_path . ' does not exist: ' . prog_version] return [0, prog_path . ' does not exist: ' . prog_version]

View File

@@ -1,6 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Shows a log with changes grouped next to their merge-commit. # Prints a nicely-formatted commit history.
# - Commits are grouped below their merge-commit.
# - Issue numbers are moved next to the commit-id.
# #
# Parameters: # Parameters:
# $1 "since" commit # $1 "since" commit
@@ -19,14 +21,32 @@ is_merge_commit() {
git log $1^2 >/dev/null 2>&1 && return 0 || return 1 git log $1^2 >/dev/null 2>&1 && return 0 || return 1
} }
# Removes parens from issue/ticket/PR numbers.
#
# Example:
# in: 3340e08becbf foo (#9423)
# out: 3340e08becbf foo #9423
_deparen() {
sed 's/(\(\#[0-9]\{3,\}\))/\1/g'
}
# Cleans up issue/ticket/PR numbers in the commit descriptions.
#
# Example:
# in: 3340e08becbf foo (#9423)
# out: 3340e08becbf #9423 foo
_format_ticketnums() {
nvim -Es +'g/\v(#[0-9]{3,})/norm! ngEldE0ep' +'%p' | _deparen
}
for commit in $(git log --format='%H' --first-parent "$__SINCE"..HEAD); do for commit in $(git log --format='%H' --first-parent "$__SINCE"..HEAD); do
if is_merge_commit ${commit} ; then if is_merge_commit ${commit} ; then
if [ -z "$__INVMATCH" ] || ! git log --oneline ${commit}^1..${commit}^2 \ if [ -z "$__INVMATCH" ] || ! git log --oneline ${commit}^1..${commit}^2 \
| grep -E "$__INVMATCH" >/dev/null 2>&1 ; then | >/dev/null 2>&1 grep -E "$__INVMATCH" ; then
git log -1 --oneline ${commit} git log -1 --oneline ${commit}
git log --format=' %h %s' ${commit}^1..${commit}^2 git log --format=' %h %s' ${commit}^1..${commit}^2
fi fi
else else
git log -1 --oneline ${commit} git log -1 --oneline ${commit}
fi fi
done done | _format_ticketnums

View File

@@ -67,7 +67,7 @@ _do_release_commit() {
if ! test "$ARG1" = '--use-current-commit' ; then if ! test "$ARG1" = '--use-current-commit' ; then
echo "Building changelog since ${__LAST_TAG}..." echo "Building changelog since ${__LAST_TAG}..."
__CHANGELOG="$(./scripts/git-log-pretty-since.sh "$__LAST_TAG" 'vim-patch:\S')" __CHANGELOG="$(./scripts/git-log-pretty-since.sh "$__LAST_TAG" 'vim-patch:[^[:space:]]')"
git add CMakeLists.txt git add CMakeLists.txt
git commit --edit -m "${__RELEASE_MSG} ${__CHANGELOG}" git commit --edit -m "${__RELEASE_MSG} ${__CHANGELOG}"

View File

@@ -1675,8 +1675,7 @@ static void patch_terminfo_bugs(TUIData *data, const char *term,
} }
// Blacklist of terminals that cannot be trusted to report DECSCUSR support. // Blacklist of terminals that cannot be trusted to report DECSCUSR support.
if (!(st || (vte_version != 0 && vte_version < 3900) if (!(st || (vte_version != 0 && vte_version < 3900) || konsolev)) {
|| (konsolev > 0 && konsolev < 180770))) {
data->unibi_ext.reset_cursor_style = unibi_find_ext_str(ut, "Se"); data->unibi_ext.reset_cursor_style = unibi_find_ext_str(ut, "Se");
data->unibi_ext.set_cursor_style = unibi_find_ext_str(ut, "Ss"); data->unibi_ext.set_cursor_style = unibi_find_ext_str(ut, "Ss");
} }

View File

@@ -2512,6 +2512,9 @@ describe(":substitute", function()
end) end)
it(':substitute with inccommand during :terminal activity', function() it(':substitute with inccommand during :terminal activity', function()
if helpers.skip_fragile(pending) then
return
end
retry(2, 40000, function() retry(2, 40000, function()
local screen = Screen.new(30,15) local screen = Screen.new(30,15)
clear() clear()

View File

@@ -61,6 +61,9 @@ describe('feeding large chunks of input with <Paste>', function()
end) end)
it('ok', function() it('ok', function()
if helpers.skip_fragile(pending) then
return
end
local t = {} local t = {}
for i = 1, 20000 do for i = 1, 20000 do
t[i] = 'item ' .. tostring(i) t[i] = 'item ' .. tostring(i)

View File

@@ -51,6 +51,9 @@ describe("shell command :!", function()
end) end)
it("throttles shell-command output greater than ~10KB", function() it("throttles shell-command output greater than ~10KB", function()
if helpers.skip_fragile(pending) then
return
end
child_session.feed_data( child_session.feed_data(
":!for i in $(seq 2 30000); do echo XXXXXXXXXX $i; done\n") ":!for i in $(seq 2 30000); do echo XXXXXXXXXX $i; done\n")