<HTML><BODY>Alexander, thank you for the review, I've made the changes as you suggested.<br><br><br><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">
Вторник, 17 декабря 2019, 18:46 +03:00 от Alexander Turenko <alexander.turenko@tarantool.org>:<br><br><div id=""><div class="js-helper js-readmsg-msg"><div><div id="style_15765975901983380788_BODY">To be honest, I didn't get most of changes here. So below I asked for<br>
explanation.<br><br>
WBR, Alexander Turenko.<br><br>
On Mon, Dec 09, 2019 at 02:45:54PM +0300, Alexander V. Tikhonov wrote:<br>
> Added Catalina OSX 10.15 to gitlab-ci testing and removed OSX 10.13,<br>
> due to decided to have only 2 last major releases, for now it is<br>
> 10.14 and 10.15 OSX versions.<br>
> <br>
> Also added homebrew installation routine as it was suggested in its<br>
> instructions. Added path in environment to reach the pip binary that<br>
> was additionally installed based on python2 version in addition to<br>
> pip3 which is the default in Catalina OSX 10.15. Added installation<br>
> of the cmake and tool. Added upgrade of the OSX packages to avoid of<br>
> fails on already existed packages, but of the previous versions.<br>
> ---<br>
> <br>
> Github: <a href="https://github.com/tarantool/tarantool/tree/avtikhon/osx_15_catalina" target="_blank">https://github.com/tarantool/tarantool/tree/avtikhon/osx_15_catalina</a><br>
> <br>
> .gitlab-ci.yml | 8 ++++----<br>
> .travis.mk | 30 +++++++++++++++++++++++++-----<br>
> 2 files changed, 29 insertions(+), 9 deletions(-)<br>
> <br>
> diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml<br>
> index 3af5a3c8a..d3cb959d0 100644<br>
> --- a/.gitlab-ci.yml<br>
> +++ b/.gitlab-ci.yml<br>
> @@ -90,15 +90,15 @@ release_asan_clang8:<br>
> script:<br>
> - ${GITLAB_MAKE} test_asan_debian_no_deps<br>
> <br>
> -osx_13_release:<br>
> +osx_15_release:<br>
> <<: *release_only_definition<br>
> <<: *vbox_definition<br>
> tags:<br>
> - - vms_osx_13<br>
> + - vms_test<br><br>
Is it separate change? Is is about load balancing between our hosts?<br><br>
If so, let's move this change into its own commit.</div></div></div></div></blockquote><p>Actually no, this is the new tag for the gitlab-ci runners, because in the current<br>version we have different tags for each of the OSX/FreeBSD versions, so to<br>have the new 'osx_15' version it was needed to create the new tag and I've<br>created it with the name 'vms_test'. The only question which can be here is why<br>it was not named as 'vms_osx_15' - the answer is simple, it is just the new name<br>which will be changed in the nearest time to the common 'vms_test' for all the<br>gitlab runners jobs, in this way we'll have only the following steps<br>- create tag 'vms_test'<br>while naming as 'vms_osx_15' will have extra steps like:<br>- create tag 'vms_osx_15'<br>- create tag 'vms_test'<br>- move job from tag 'vms_osx_15' to 'vms_test'<br>- remove tag 'vms_osx_15'<br>So I don't see any obstacles just to name the tag as 'vms_test' from the very start,<br>anyway the name is new.</p><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;"><div id=""><div class="js-helper js-readmsg-msg"><div><div id="style_15765975901983380788_BODY"><br><br>
> variables:<br>
> - VMS_NAME: 'osx_13'<br>
> + VMS_NAME: 'osx_15'<br>
> VMS_USER: 'tarantool'<br>
> - VMS_PORT: '2212'<br>
> + VMS_PORT: '2242'<br>
> script:<br>
> - ${GITLAB_MAKE} vms_test_osx<br>
> <br>
> diff --git a/.travis.mk b/.travis.mk<br>
> index 42969ff56..c8cb273fa 100644<br>
> --- a/.travis.mk<br>
> +++ b/.travis.mk<br>
> @@ -127,17 +127,37 @@ test_asan_debian: deps_debian deps_buster_clang_8 test_asan_debian_no_deps<br>
> # OSX #<br>
> #######<br>
> <br>
> +OSX_PKGS=openssl readline curl icu4c libiconv zlib autoconf automake libtool cmake<br>
> +<br>
> deps_osx:<br>
> - brew update<br>
> - brew install openssl readline curl icu4c libiconv zlib autoconf automake libtool --force<br>
> + # install brew using command from Homebrew repository instructions:<br>
> + # <a href="https://github.com/Homebrew/install" target="_blank">https://github.com/Homebrew/install</a><br>
> + export PATH=${PATH}:/usr/local/bin ; \<br>
> + brew update || echo | /usr/bin/ruby -e \<br>
> + "`curl -fsSL <a href="https://raw.githubusercontent.com/Homebrew/install/master/install`" target="_blank">https://raw.githubusercontent.com/Homebrew/install/master/install`</a>"<br><br>
The only motivation I found is that it is suggested in homebrew<br>
instructions. What did not work before this change? Is it actually<br>
related to 1.0.13 -> 10.15 update?</div></div></div></div></blockquote>Additional tool homebrew is not installed at macOS by default, also it uses the<br>'/usr/local' path (check <a href="https://en.wikipedia.org/wiki/Homebrew_(package_management_software)" data-mce-href="https://en.wikipedia.org/wiki/Homebrew_(package_management_software)">https://en.wikipedia.org/wiki/Homebrew_(package_management_software)</a>)<br>which is not in the PATH environment by default. Right, the fix can be separated to the<br>standalone patch for the other macOS version, but the current part of code doesn't<br>depend to any of macOS version, that is why I suggested to add this change to the<br>current commit, anyway I'll move it to the separate commit, as suggested.<br><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;"><div id=""><div class="js-helper js-readmsg-msg"><div><div id="style_15765975901983380788_BODY"><br><br>
> + # try to install the packages either upgrade it to avoid of fails<br>
> + # if the package allready exists but of the previous version<br><br>
Typo: allready.</div></div></div></div></blockquote>Corrected.<br><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;"><div id=""><div class="js-helper js-readmsg-msg"><div><div id="style_15765975901983380788_BODY"><br><br>
> + export PATH=${PATH}:/usr/local/bin ; \<br>
> + brew install --force ${OSX_PKGS} || brew upgrade ${OSX_PKGS}<br><br>
I see the following warnings on 10.14 in Travis-CI on current master:<br><br>
| brew install openssl readline curl icu4c libiconv zlib autoconf automake libtool --force<br>
| Warning: <a href="mailto:openssl@1.1">openssl@1.1</a> 1.1.1d is already installed, it's just not linked<br>
| You can use `brew link openssl@1.1` to link this version.<br><br>
Is it about them? So, it forces brew to install last packages versions?<br>
It seems this is not related to 10.13 -> 10.15 update (correct me if I'm<br>
wrong) and deserves its own commit.</div></div></div></div></blockquote>No, the problem is that if the package already exists with the previous version<br>then 'brew install' fails with message about it and suggests to upgrade it. To avoid of<br>its issue we can try to install all needed packages and try to upgrade it on failed<br>installation process, if the upgrade command fails too than it means the some other<br>fail occurred. Ok, let's move it to separate commit.<br><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;"><div id=""><div class="js-helper js-readmsg-msg"><div><div id="style_15765975901983380788_BODY"><br><br>
> + # OSX 10.15 Catalina started to use Xcode 11 which has 'Deprications'<br>
> + # part in Release Notes:<br>
> + # Use of Python 2.7 isn’t recommended. This version is included in<br>
> + # macOS for compatibility with legacy software. Future versions of<br>
> + # macOS won’t include Python 2.7. Instead, it’s recommended that<br>
> + # you run python3 in Terminal. (51097165)<br>
> python2 -V || brew install python2 --force<br>
> curl --silent --show-error --retry 5 <a href="https://bootstrap.pypa.io/get-pip.py" target="_blank">https://bootstrap.pypa.io/get-pip.py</a> >get-pip.py<br>
> python get-pip.py --user<br><br>
Is it python3 on Mac OS 10.15? If so, I didn't get what are we doing<br>
here. Maybe it didn't matter before, but now we should explicitly call<br>
python2 here?</div></div></div></div></blockquote><p>Here we check that python2 is installed, by default macOS 10.15 use python3<br>instead of python2 as previous MacOS 10.14 version used. After the manual<br>installation of python2 the link 'python' points to the python2 binary and we don't<br> need to call python2 explicitly, check:<br></p><p>tarantool@Tarantools-iMac tarantool % ls -al `which python`<br>/usr/bin/python -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7</p><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;"><div id=""><div class="js-helper js-readmsg-msg"><div><div id="style_15765975901983380788_BODY"><br><br>
> - pip install --user --force-reinstall -r test-run/requirements.txt<br>
> + # To make pip tools available, the PATH environment must include the<br>
> + # path to its binaries<br>
> + export PATH=${PATH}:/Users/tarantool/Library/Python/2.7/bin ; \<br>
> + pip install --user --force-reinstall -r test-run/requirements.txt<br><br>
We just install pip and it is not with default PATH? This looks strange.<br>
Can you verify that this extra path is necessary?<br></div></div></div></div></blockquote><p>Sure, please check the following:<br></p><p>tarantool@Tarantools-iMac tarantool % curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py >get-pip.py<br><br>tarantool@Tarantools-iMac tarantool % python get-pip.py --user<br>DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support<br>Collecting pip<br> Using cached https://files.pythonhosted.org/packages/00/b6/9cfa56b4081ad13874b0c6f96af8ce16cfbc1cb06bedf8e9164ce5551ec1/pip-19.3.1-py2.py3-none-any.whl<br>Installing collected packages: pip<br> Found existing installation: pip 19.3.1<br> Uninstalling pip-19.3.1:<br> Successfully uninstalled pip-19.3.1<br> WARNING: The scripts pip, pip2 and pip2.7 are installed in '/Users/tarantool/Library/Python/2.7/bin' which is not on PATH.<br> Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.<br>Successfully installed pip-19.3.1<br><br>tarantool@Tarantools-iMac tarantool % which pip<br>pip not found<br><br>tarantool@Tarantools-iMac tarantool % export PATH=${PATH}:/Users/tarantool/Library/Python/2.7/bin ; which pip<br>/Users/tarantool/Library/Python/2.7/bin/pip</p><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;"><div id=""><div class="js-helper js-readmsg-msg"><div><div id="style_15765975901983380788_BODY"><br>
> <br>
> build_osx:<br>
> - cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_WERROR=ON ${CMAKE_EXTRA_PARAMS}<br>
> - make -j<br>
> + export PATH=${PATH}:/usr/local/bin ; \<br>
> + cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo \<br>
> + -DENABLE_WERROR=ON ${CMAKE_EXTRA_PARAMS} && \<br>
> + make -j<br><br>
Didn't get this change: what is now in /usr/local/bin that was not there<br>
before?<br></div></div></div></div></blockquote><p>The following example shows that 'make' that was installed by default is in<br>the default path '/usr/bin':</p><p><br>tarantool@Tarantools-iMac tarantool % which make<br>/usr/bin/make</p><p>while 'cmake' additionally installed by the homebrew exists only at the additional<br>path '/usr/local/bin':</p><p>tarantool@Tarantools-iMac tarantool % which cmake<br>/usr/local/bin/cmake</p><br><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;"><div id=""><div class="js-helper js-readmsg-msg"><div><div id="style_15765975901983380788_BODY"><br>
> <br>
> test_osx_no_deps: build_osx<br>
> # Limits: Increase the maximum number of open file descriptors on macOS:<br>
> -- <br>
> 2.17.1<br>
> <br></div></div></div></div></blockquote>
<br>
<br>-- <br>Alexander Tikhonov<br></BODY></HTML>