CMake contract tests are a useful but obscure possibility with CMake. They implement an informal test contract between CMake developers and some software package developer to test the latest development version of CMake every night in the standard way supplied by cmake with one additional "contract" test added that that downloads, configures, builds, and installs the software package using that latest development version of CMake. The results are automatically collected by the ctest component of CMake as a dashboard that is uploaded to the open.cdash.org dashboard server with results displayed at <https://open.cdash.org/index.php?project=CMake>.
What CMake developers get out of such contracts is an integrated test of CMake for a whole build system (as opposed to their normal "unit" tests that just test tiny bits and pieces of CMake functionality). What developers for a given package get out of such contracts is nightly confirmation that a certain version of their software identified by commit id works for the latest development version of CMake. The joint advantage for CMake and software package developers is this contract process finds early in the CMake development process bad CMake development ideas that would break the software package's build system even if the unit tests are succeeding. Currently, CMake implements contract tests for PLplot and two other software packages as can be seen from software@merlin> ls Tests/Contracts/ Home.cmake PLplot/ Trilinos/ VTK/ And if you check the above dashboard for "merlin" (the name of my computer) you will see that the PLplot contract test is currently succeeding for the commit id "plplot-5.15.0" (i.e., the latest release of PLplot) on my Debian Buster=Stable platform. However, if you explore the calendar options at that site you will also discover that the "merlin" PLplot contract test failed in recent times for several weeks due to what turned out to be a faulty cable modem for my home computer. But once that modem was replaced the "merlin" PLplot contract test started succeeding again just like it has done ever since the release of 5.15.0 and also (with commit-id "plplot-5.14.0") between the 5.14.0 and 5.15.0 releases. And just like in those previous release cycles I plan late in this current plplot-5.16.0 release cycle to do a preliminary contract test for some near-release commit id that will be changed to "plplot-5.16.0" just after that release. Of course, the PLplot contract test I am running only tests our build system against the latest CMake development version for just my platform, and expanding that test to more platforms would be substantially strengthen this test of both PLplot and CMake. So if you are interested in helping out with that desired expansion, I have attached my notes (README.gz) (and also the key configuration file, my_dashboard.cmake.gz, referred to by those notes) on how I set up (with a lot of initial help from Brad Kind) the above "merlin" PLplot contract test on my own computer. Assuming you understand those notes and the documentation referred to by those notes, then then all you really need to participate further is network connectivity and the ability to build and install PLplot automatically at the time you choose in the (24-hour) day to perform this "Nightly" test (typically with crontab on Unix computers and the equivalent of that on Windows systems that is referred to by the contract test documentation.) And, of course, you should make sure that the name you choose to describe your computer in my_dashboard.cmake does not name-clash with all the other computer names (including "merlin") that show up at the above dashboard URL. If you are interested in helping out with both PLplot and CMake testing in the way I have described above for any platform for PLplot that interests you, I would be happy to help you with any further questions you may have. Alan __________________________ Alan W. Irwin Research affiliation with the Department of Physics and Astronomy, University of Victoria, Victoria, BC, Canada. 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.org); 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 __________________________
README.gz
Description: Notes on configuring a PLplot contract test
my_dashboard.cmake.gz
Description: configuration file referred to by those notes
_______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel