On 2016-11-22 23:07-0500 Hazen Babcock wrote: > > On 11/20/2016 01:12 PM, Tom Schoonjans wrote: >> That’s exactly how I do it though: trial and error :-) > > I think I have at least sort of figured out travis-vi. To make it easier > I've been doing all the experiments on a personal copy of the PLplot > repo. It is pretty cool to be able to build 5 different versions at the > same time :). > > If anyone is interested, you can see the results of all the tests here: > https://travis-ci.org/HazenBabcock/PLplot/builds > > So far I have learned the new fortran95 bindings fail with gfortran4.8 > (and presumably lower). I also had trouble with ada, wxwidgets, lua and > ocaml, but I'm not sure whether these are dependency issues.
Hi Hazen: Sorry for the length of this, but I have a lot to say that should be a big help to you for testing purposes. Indeed those raw testing reports are certainly quite interesting to me, and here are some suggestions for improvements based on looking in detail at the results from one of those raw reports (<https://travis-ci.org/HazenBabcock/PLplot/jobs/178182918>). * -- WARNING: CMAKE_VERSION = 3.2.2 is in the range from 3.2 through 3.3.1 which has a compromised find ability that was fixed in 3.3.2. Please upgrade to 3.3.2 or greater. In other words, the cmake version (supplied by your distro?) is not recommended at all, and I suggest you build and use the latest CMake release (currently 3.7.0) instead, but note you should be able to build into your testing scripts a check of recent tags for the git version of the master branch for CMake to figure out whenever they release another version. I plan to automate that process myself for the cmake script I am putting together to collect ctest results and publish them at my.cdash.org because otherwise I will forget to do that update and end up testing latest PLplot against some older version of cmake that nobody uses any more. For that cmake script I actually plan not only to run the PLplot build and ctest against the latest CMake version and also some fixed CMake versions such as CMake version 3.7.0 (once that is different from latest CMake version and currently required for users of rolling software releases such as Debian testing and MinGW-w64/MSYS2 unless they are willing to build their own CMake version from scratch), CMake version 3.6.2 (currently required by Cygwin users unless ...), and CMake version 3.0.2 (currently required by Debian stable users unless ...). * Currently, your PLplot version is at least 3 commits behind. (I can tell that from the form of the cmake output which probably means I should get a life other than testing and developing PLplot. :-) ) I assume you are deliberately not upgrading PLplot until you are ready to merge into SF master the files you need to support these tests. But when you are ready to test the latest PLplot, you could do the git fetch, etc., from our SF repository by hand, but that would become a pretty tough maintenance issue since you would likely have to remember to do that PLplot upgrade on a daily basis. Therefore, I advise you to automate your PLplot update process (which is what I plan to do for the script I referred to above.) * application-specific initialization failed: no display name and no $DISPLAY environment variable Error in startup script: no display name and no $DISPLAY environment variable [....] -- Looking for Tk version with wish - not found -- WARNING: setting ENABLE_tk to OFF From this cmake output message, it appears you don't have any X display available to you during testing. If you cannot fix that issue, I suggest you specifically disable Tk (-DENABLE_tk=OFF) to get rid of the above warning. * -- Looking for itcl.h - not found -- WARNING: Disabling Itcl interface code On Debian Jessie, the package you need to install is called itcl3-dev and I presume that the package names I mention for that distro will also be relevant for Ubuntu as well since that is based on Debian. But it turns out from your raw test results that you _did_ install itcl3-dev. I looked carefully at the Ubuntu install messages for that package and except for one system update issue, (see below) all seems to be well there so itcl.h was very likely installed fine, but cmake is just plain not finding it. Therefore, I am virtually positive this problem is an example of one of the many known find problems with your version of CMake. So you should address that issue by building and using the latest CMake (see the remarks about that above), and I am pretty sure once you do that, this issue with finding itcl.h will "magically" disappear. * Updating your Ubuntu distro to make it self-consistent (and a lot more secure) Your detailed install messages for itcl3-dev seemed to successful as noted above, but they did include the following warning message about 110 packages that needed updating. 0 upgraded, 2 newly installed, 0 to remove and 110 not upgraded. To reduce that "not upgraded" number to 0, do the following: sudo apt-get update sudo apt-get dist-upgrade The first of those commands updates the lists of _potential_ packages you should upgrade, and the second of those commands actually does those updates. I suspect as a result of the first command, there will be far more than the 110 packages mentioned above that need updating to bring your system into self-consistency and to also make it much more secure because many of those updates are related to security. But the second of those commands does those necessary updates and should bring the "not upgraded" count to 0. (Note as a matter of standard maintenance of your Ubuntu system I would reccommend doing the two sudo commands above at least a couple of times a month, and depending on the pace of upgrading packages by the Ubuntu packagers, you might want to do those two commands much more often than that.) * -- WARNING: no working Ada compiler so disabling Ada binding and examples. You need to install a package that contains the gnatmake command. On Debian Jessie the name of that package is gnat-4.9. * -- Could NOT find Lua (missing: LUA_EXECUTABLE LUA_VERSION LUA_LIBRARIES LUA_INCLUDE_DIR) -- WARNING: Lua library and/or header not found. Disabling Lua binding On Debian Jessie, the packages you need to install are called liblua5.2-dev (for the development version of the lua library) and lua5.2 (for the lua executable). * -- WARNING: no working D compiler so disabling D binding and examples. On Debian Jessie, the package you need to install is called gdc. * -- WARNING: SHAPELIB not found. Setting HAVE_SHAPELIB to OFF. On Debian Jessie, the package you need to install is called libshp-dev. * -- pyqt: SIP_EXECUTABLE = SIP_EXECUTABLE-NOTFOUND -- WARNING: sip not found so setting ENABLE_pyqt4 / ENABLE_pyqt5 to OFF. On Debian Jessie, the package you need to install is called sip-dev. * -- package 'lasi' not found [...] -- WARNING: pango, pangoft2, or lasi not found with pkg-config. Setting PLD_psttf to OFF. Please install all of these packages and/or set the environment variable PKG_CONFIG_PATH appropriately. On Debian Jessie, the package you need to install is called liblasi-dev. * -- wxWidgets_FOUND : FALSE -- wxWidgets_INCLUDE_DIRS : -- wxWidgets_LIBRARY_DIRS : -- wxWidgets_LIBRARIES : -- wxWidgets_CXX_FLAGS : -- wxWidgets_USE_FILE : UsewxWidgets -- WARNING: wxWidgets or its libraries not found so setting all wxwidgets devices to OFF. -- WARNING: PLD_wxwidgets is OFF so setting ENABLE_wxwidgets to OFF. -- WARNING: ENABLE_wxwidgets is OFF so setting all wxwidgets devices to OFF. On Debian Jessie, the package you need to install is called libwxgtk3.0-dev. * -- Looking for haru pdf header and library -- Looking for haru pdf header and library - not found -- WARNING: Setting PLD_pdf to OFF. On Debian Jessie, the package you need to install is called libhpdf-dev. * -- WARNING: The ocamlc application not found. Disabling OCaml binding On Debian Jessie, I discovered by running apt-file search ocamlc that the package ocaml-nox contains that needed executable. However, I happen to know that ocaml-nox is a dependency of the "ocaml" package which advertises itself as providing everything you need for ocaml development so I would recommend you install ocaml (which automatically installs its dependency, ocaml-nox as well) instead of just ocaml-nox alone. There may be additional ocaml-related executables or libraries, you need once our build system finds ocamlc installed on your platform, but look in the raw output from the cmake command for any relevant WARNING messages about that. Such messages will likely include what executable is still missing, and in that case the apt-file command should help you to figure out what additional packages you need to install to support our ocaml bindind and examples. * -- checking for module 'gtk+-x11-2.0' -- package 'gtk+-x11-2.0' not found -- WARNING: gtk+-x11-2.0 not found. extXdrawable_demo not built. On Debian Jessie, the package you need to install is called libgtk2.0-dev. * make[2]: Circular examples/python/x00 <- examples/python/x00 dependency dropped. And many, many more such messages. I don't have a clue whether that is a CI analysis error or your old version of CMake actually produces bad Makefiles as claimed, but it will be interesting to see if this issue dissapears once you move to modern cmake. N.B. All my comments above are relevant to testing the latest PLplot, testing all components of PLplot whose dependencies should be readily accessible on Ubuntu, and preparing your Ubuntu system to be consistent and secure. So once you address all the above issues all the cmake WARNINGS I mentioned above should be gone (i.e., the WARNINGS that remain should never refer to missing components), and your PLplot testing environment should become as powerful as mine. But despite these temporary limitations of your current tests, I want to congratulate you on at least one test result you have produced which is already useful to me because it definitely confirms my previous suspicion (from problematic results for gfortran-4.8 when Arjen first started implementing this new Fortran binding) that gfortran-4.8 does not support the iso_c_binding module (first introduced for Fortran 2003) well enough to build the new binding. So as a result of your current tests, I can now state in the release notes that gfortran-4.9 (which works well for you there and which also works well for me here with Debian Jessie) is the minimum version of gfortran that can be used with the new binding. Anyhow, thanks very much for the interesting testing results you have already generated, and I look forward to more of those with the above issues addressed. By the way, will there be a graphical summary somewhere of which ctests failed and which did not for your latest test results? (That sort of display is what you should soon find at my.cdash.org from my own nightly ctest-based testing results.) Also, after writing the above I have now read a bit more about the <https://en.wikipedia.org/wiki/Travis_CI> continuous integration available for free to gitHub users and also followed up by reading <https://docs.travis-ci.com/user/customizing-the-build/#Customizing-the-Build-Step> The "apt-get update" and apt-get install commands are specifically mentioned in that latter document so I presume "apt-get dist-upgrade" is also available, and I highly recommend including that. I also find from <https://docs.travis-ci.com/user/ci-environment/#Virtualization-environments> that both Ubuntu 12.04 LTS (precise) and 14.04 LTS (trusty) with both the 64-bit Server Edition. From looking at <http://packages.ubuntu.com/search?keywords=cmake&searchon=names&suite=all§ion=all> no offical version of Ubuntu supplies the version (3.2.2) that you get from Travis. I assume that is because precise was released more than 4 years ago, and trusty was released more than two years ago so neither of them provides access to modern CMake-3. In any case, I suggest you specify "trusty" rather than the default "precise" because the latter is much too old and may include such old versions of PLplot dependencies that PLplot is no longer compatible with them. See <https://docs.travis-ci.com/user/trusty-ci-environment/#Image-differences-from-Precise> for how to switch from precise to trusty. I am now wondering whether it is possible to use the same simple method to get access to the latest officially released Ubuntu which is called yakkety and which gives you access to CMake-3.5.2 and many other recent versions of the PLplot dependencies so that would be a really powerful and interesting test environment. Also, note that travis-ci gives you a fresh system for every test which implies it might be possible to change that system anyway you like since they are no consequences other than possibly a temporarily broken system and therefore a broken test result. So assuming the above idea for getting access to yakkety does not work, the possibility exists that if you follow the ideas in <https://www.howtoforge.com/tutorial/ubuntu-rolling-release/> (an article about how to change Ubuntu to a rolling release, but the same idea can be used to change from one official version to another) you can change Ubuntu versions with just 3 key commands (if you don't count the two extra cat commands to figure out whether the key sed command actually worked properly or not) sudo cat /etc/apt/sources.list sudo sed -i 's/trusty/yakkety/g' /etc/apt/sources.list sudo cat /etc/apt/sources.list Those cat commands are not necessary, but they should tell you what is going on with the key /etc/apt/sources.list file before and after the sed command changed that system file. Then follow up with the usual sudo apt-get update sudo apt-get dist-upgrade Note, if travis-ci somehow precludes you from switching Ubuntu from trusty to Ubuntu yakkety (admittedly a pretty drastic change) in either of the two ways above, then that would force you to build cmake-3.7.0 as part of each of your tests, and that would obviously be slower than the above change to yakkety (if allowed by travis-ci). Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ ------------------------------------------------------------------------------ _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel