From 2dff7674cf432bd90d4f85908387e48013341e33 Mon Sep 17 00:00:00 2001 From: Foo Date: Sun, 10 May 2015 22:46:40 +0300 Subject: [PATCH 1/7] Fix tmux bindings --- powerline/bindings/config.py | 1 + 1 file changed, 1 insertion(+) diff --git a/powerline/bindings/config.py b/powerline/bindings/config.py index ba4344f0..aedee89e 100644 --- a/powerline/bindings/config.py +++ b/powerline/bindings/config.py @@ -89,6 +89,7 @@ def source_tmux_files(pl, args, tmux_version=None, source_tmux_file=source_tmux_ class EmptyArgs(object): def __init__(self, ext, config_path): self.ext = [ext] + self.side = 'left' self.config_path = None def __getattr__(self, attr): From b88a16c98f195ef9825869e06250bdcc330dfe15 Mon Sep 17 00:00:00 2001 From: Foo Date: Sun, 10 May 2015 19:40:47 +0300 Subject: [PATCH 2/7] Move from /opt to $HOME/opt --- tests/install.sh | 12 +++++++----- tests/run_vim_tests.sh | 2 +- tests/test.sh | 6 +++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/tests/install.sh b/tests/install.sh index 83b97719..53df8772 100755 --- a/tests/install.sh +++ b/tests/install.sh @@ -7,15 +7,17 @@ git clone --depth=1 git://github.com/powerline/deps tests/bot-ci/deps sudo apt-get install -qq libssl1.0.0 sudo apt-get install -qq zsh tcsh mksh busybox socat realpath bc rc tmux +mkdir -p "$HOME/opt" + if test -n "$USE_UCS2_PYTHON" ; then pip install virtualenvwrapper set +e . virtualenvwrapper.sh set -e archive="${PWD:-$(pwd)}/tests/bot-ci/deps/cpython-ucs2/cpython-ucs2-${UCS2_PYTHON_VARIANT}.tar.gz" - sudo sh -c "cd /opt && tar xzf $archive" - PYTHON="/opt/cpython-ucs2-$UCS2_PYTHON_VARIANT/bin/python$UCS2_PYTHON_VARIANT" - export LD_LIBRARY_PATH="/opt/cpython-ucs2-$UCS2_PYTHON_VARIANT/lib${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}" + sh -c "cd $HOME/opt && tar xzf $archive" + PYTHON="$HOME/opt/cpython-ucs2-$UCS2_PYTHON_VARIANT/bin/python$UCS2_PYTHON_VARIANT" + export LD_LIBRARY_PATH="$HOME/opt/cpython-ucs2-$UCS2_PYTHON_VARIANT/lib${LD_LIBRARY_PATH:+:}${LD_LIBRARY_PATH}" set +e mkvirtualenv -p "$PYTHON" cpython-ucs2-$UCS2_PYTHON_VARIANT set -e @@ -37,11 +39,11 @@ else fi if test "$PYTHON_IMPLEMENTATION" = "CPython" ; then archive="${PWD:-$(pwd)}/tests/bot-ci/deps/zpython/zsh-${PYTHON_MM}${USE_UCS2_PYTHON:+-ucs2}.tar.gz" - sudo sh -c "cd /opt && tar xzf $archive" + sh -c "cd $HOME/opt && tar xzf $archive" fi archive="${PWD:-$(pwd)}/tests/bot-ci/deps/fish/fish.tar.gz" -sudo sh -c "cd /opt && tar xzf $archive" +sh -c "cd $HOME/opt && tar xzf $archive" mkdir tests/vim-plugins diff --git a/tests/run_vim_tests.sh b/tests/run_vim_tests.sh index b5bf8723..33705b26 100755 --- a/tests/run_vim_tests.sh +++ b/tests/run_vim_tests.sh @@ -6,7 +6,7 @@ if test -z "$VIM" ; then if test -n "$USE_UCS2_PYTHON" ; then NEW_VIM="$ROOT/tests/bot-ci/deps/vim/tip-$UCS2_PYTHON_VARIANT-ucs2-double/vim" OLD_VIM="$ROOT/tests/bot-ci/deps/vim/v7-0-112-$UCS2_PYTHON_VARIANT-ucs2/vim" - opt_dir="/opt/cpython-ucs2-$UCS2_PYTHON_VARIANT" + opt_dir="$HOME/opt/cpython-ucs2-$UCS2_PYTHON_VARIANT" main_path="$opt_dir/lib/python$UCS2_PYTHON_VARIANT" site_path="$main_path/site-packages" venv_main_path="$VIRTUAL_ENV/lib/python$UCS2_PYTHON_VARIANT" diff --git a/tests/test.sh b/tests/test.sh index fa92949f..9303903c 100755 --- a/tests/test.sh +++ b/tests/test.sh @@ -9,14 +9,14 @@ export USER HOME FAILED=0 if test "$TRAVIS" = true ; then - export PATH="/opt/fish/bin:${PATH}" + export PATH="$HOME/opt/fish/bin:${PATH}" if test "$PYTHON_IMPLEMENTATION" = "CPython" ; then - export PATH="/opt/zsh-${PYTHON_MM}${USE_UCS2_PYTHON:+-ucs2}/bin:${PATH}" + export PATH="$HOME/opt/zsh-${PYTHON_MM}${USE_UCS2_PYTHON:+-ucs2}/bin:${PATH}" fi if test -n "$USE_UCS2_PYTHON" ; then - export LD_LIBRARY_PATH="/opt/cpython-ucs2-$UCS2_PYTHON_VARIANT/lib${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" + export LD_LIBRARY_PATH="$HOME/opt/cpython-ucs2-$UCS2_PYTHON_VARIANT/lib${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" set +e . virtualenvwrapper.sh workon cpython-ucs2-$UCS2_PYTHON_VARIANT From 8e8e396778071e3f0a6cf6b4aacb7b3a52b25b5e Mon Sep 17 00:00:00 2001 From: Foo Date: Sun, 10 May 2015 21:16:23 +0300 Subject: [PATCH 3/7] Switch to container-based infrastructure --- .travis.yml | 12 ++++++++++++ tests/install.sh | 5 ----- tests/test.sh | 5 +++++ 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index b6cedf3e..9f9f82a7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,15 @@ +sudo: false +addons: + apt: + packages: + - libssl1.0.0 + - zsh + # - tcsh + # - mksh + # - busybox + # - rc + # - socat + - bc language: python install: tests/install.sh script: tests/test.sh diff --git a/tests/install.sh b/tests/install.sh index 53df8772..613ae19f 100755 --- a/tests/install.sh +++ b/tests/install.sh @@ -4,9 +4,6 @@ git clone --depth=1 git://github.com/powerline/deps tests/bot-ci/deps . tests/bot-ci/scripts/common/main.sh -sudo apt-get install -qq libssl1.0.0 -sudo apt-get install -qq zsh tcsh mksh busybox socat realpath bc rc tmux - mkdir -p "$HOME/opt" if test -n "$USE_UCS2_PYTHON" ; then @@ -54,6 +51,4 @@ for archive in "$ROOT"/tests/bot-ci/deps/vim-plugins/*.tar.gz ; do ) done -# Travis has too outdated fish. It cannot be used for tests. -# sudo apt-get install fish true diff --git a/tests/test.sh b/tests/test.sh index 9303903c..38ae36fe 100755 --- a/tests/test.sh +++ b/tests/test.sh @@ -10,6 +10,11 @@ FAILED=0 if test "$TRAVIS" = true ; then export PATH="$HOME/opt/fish/bin:${PATH}" + export PATH="$PWD/tests/bot-ci/deps/rc:$PATH" + export PATH="$PWD/tests/bot-ci/deps/mksh:$PATH" + export PATH="$PWD/tests/bot-ci/deps/busybox:$PATH" + export PATH="$PWD/tests/bot-ci/deps/tcsh:$PATH" + export PATH="$PWD/tests/bot-ci/deps/socat:$PATH" if test "$PYTHON_IMPLEMENTATION" = "CPython" ; then export PATH="$HOME/opt/zsh-${PYTHON_MM}${USE_UCS2_PYTHON:+-ucs2}/bin:${PATH}" From 37a0c4dd24638529dfd0d70cd39c35b244f52830 Mon Sep 17 00:00:00 2001 From: Foo Date: Sun, 10 May 2015 21:30:09 +0300 Subject: [PATCH 4/7] Enable directory caching --- .travis.yml | 4 ++++ tests/install.sh | 26 ++++++++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9f9f82a7..920141cf 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,8 @@ sudo: false +cache: + directories: + - $HOME/.cache/pip + - tests/bot-ci addons: apt: packages: diff --git a/tests/install.sh b/tests/install.sh index 613ae19f..e71a9e73 100755 --- a/tests/install.sh +++ b/tests/install.sh @@ -1,6 +1,28 @@ #!/bin/bash -git clone --depth=1 git://github.com/powerline/bot-ci tests/bot-ci -git clone --depth=1 git://github.com/powerline/deps tests/bot-ci/deps + +set -e + +remote_master_hex() { + local url="$1" + git ls-remote "$url" refs/heads/master | cut -f1 +} + +checkout_cached_dir() { + local url="$1" + local target="$2" + if ! test -e "$target/.version" || \ + test "$(cat "$target/.version")" != "$(remote_master_hex "$url")" ; then + rm -rf "$target" + fi + if ! test -d "$target" ; then + git clone --depth=1 "$url" "$target" + mv "$target"/.git/refs/heads/master .version + rm -r "$target"/.git + fi +} + +checkout_cached_dir git://github.com/powerline/bot-ci tests/bot-ci +checkout_cached_dir git://github.com/powerline/deps tests/bot-ci/deps . tests/bot-ci/scripts/common/main.sh From 24176882abec3f0d35a7e7850a83b2298c3ae1b1 Mon Sep 17 00:00:00 2001 From: Foo Date: Sun, 10 May 2015 21:59:38 +0300 Subject: [PATCH 5/7] Use force-removal of .git Otherwise it may hang with message like rm: remove write-protected regular file `tests/bot-ci/.git/objects/pack/pack-589af67feed5a0f1d2c4cfb43325ab5165539bcc.pack'? --- tests/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/install.sh b/tests/install.sh index e71a9e73..6c1bbbd0 100755 --- a/tests/install.sh +++ b/tests/install.sh @@ -17,7 +17,7 @@ checkout_cached_dir() { if ! test -d "$target" ; then git clone --depth=1 "$url" "$target" mv "$target"/.git/refs/heads/master .version - rm -r "$target"/.git + rm -rf "$target"/.git fi } From 450dbecb3492fec4d9734ac5e4b2ca30549e6948 Mon Sep 17 00:00:00 2001 From: Foo Date: Sun, 10 May 2015 23:05:57 +0300 Subject: [PATCH 6/7] Mock realpath if it is not present --- tests/test.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/test.sh b/tests/test.sh index 38ae36fe..6fe9ade7 100755 --- a/tests/test.sh +++ b/tests/test.sh @@ -29,6 +29,12 @@ if test "$TRAVIS" = true ; then fi fi +if ! which realpath ; then + realpath() { + $PYTHON -c 'import os, sys; print(os.path.realpath(sys.argv[1]))' "$1" + } +fi + export PYTHON="${PYTHON:=python}" export PYTHONPATH="${PYTHONPATH}${PYTHONPATH:+:}`realpath .`" for script in tests/run_*_tests.sh ; do From 20868f7a0d9ae62f7563c3c7e0d5b8e98489ebd9 Mon Sep 17 00:00:00 2001 From: Foo Date: Sun, 10 May 2015 23:18:10 +0300 Subject: [PATCH 7/7] Update base version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 686f19f1..6522709e 100644 --- a/setup.py +++ b/setup.py @@ -59,7 +59,7 @@ else: def get_version(): - base_version = '2.1.3' + base_version = '2.1.4' base_version += '.dev9999' try: return base_version + '+git.' + str(subprocess.check_output(['git', 'rev-parse', 'HEAD']).strip())