[mapguide-internals] About your post "I have a dream"

Even Rouault even.rouault at spatialys.com
Sun Aug 31 12:07:13 PDT 2014


Hi Jackie,

I read your post on http://planet.osgeo.org and can give you some feedback 
related to GDAL and CI tools :

* git svn mirroring. Quite easy to setup and maintain :

Initial setup is described in "Git repository setup using git-svn" section of 
https://trac.osgeo.org/gdal/wiki/UsingGitToMaintainGDALWorkflow

And I have a cron job that runs every 15 minutes to do the sync :
git svn fetch --use-log-author
git push origin

Note: you could transition completely to GitHub and still make people used to 
SVN happy since GitHub offers a SVN read/write view of git repositories. I 
didn't use it extensively but seemed to work on a test repository. I didn't do 
the transition yet since I find Trac better than GitHub, the GitHub ticket 
system missing attachments.

Regarding binaries in SCM, you could probably host them somewhere in a Cloud 
storage. Travis VM have good download speed from AWS S3 storage. We've hosted 
a few pre-compiled optional dependencies of GDAL in S3 that weren't available 
as Ubuntu packages.

* Travis-CI. Their job timeout is apparently now 50 minutes. Sufficient for GDAL 
builds that take at most ~ 15 minutes with regression tests

* Coveralls: I did attempts to use it, but due to the relative large size of 
GDAL source ( ~ 800 kLOC, blank lines included ), upload to coveralls of the 
result failed. I ended up using gcc --coverage and lcov. And push the 
resulting HTML files to a dedicated github repo (with use of Travis encrypted 
variables to secure the private key of that dedicated repo)
See 
https://github.com/rouault/gdal_coverage/blob/trunk_with_coverage/.travis.yml
and http://lists.osgeo.org/pipermail/gdal-dev/2013-July/036652.html
The result can be seen at : http://rawgit.com/rouault/gdalautotest-coverage-
results/master/coverage_html/index.html

* Appveyor. Didn't know it before reading your post! I've just tried it. Not a 
huge success. A minimal optimized build of GDAL takes more than 30 minutes, 
and then gets killed... Debug builds run in 25 minutes. No time to run tests. 
https://ci.appveyor.com/project/rouault/gdal-coverage

Regarding Travis, it is possible to do :

- Windows builds with mingw and mingw64 and running the GDAL Python autotest 
suite with Windows Python under wine/wine64 : e.g. 
https://github.com/rouault/gdal_coverage/blob/trunk_mingw/.travis.yml
https://github.com/rouault/gdal_coverage/blob/trunk_mingw_w64/.travis.yml

- MacOS builds : 
https://github.com/rouault/gdal_coverage/blob/trunk_travis_macosx/.travis.yml

- Windows builds with MSVC running under Wine. I managed to do that with 
Visual Studio Express 2005 and 2008 :
https://github.com/rouault/vcexpress2005 
https://github.com/rouault/vcexpress2008
The hard part was to manage to find the minimum set of required packages to 
download from MS and install them in unattended mode. This works, but I didn't 
pursue a lot since I didn't manage to install Python under Wine once Visual 
Studio is installed. I also tried setting up VS Express 2010 but couldn't 
manage to make an unattended install of it under Wine. The irony is that 
building with MSVC under Wine on Travis is faster than Appveyor and its native 
Windows VMs !

- I guess Linux 32bit builds shouldn't be too complicated if you install the 
ubuntu 32bit support packages.

To have different build targets with Travis, my cron script merges GDAL git 
master into the specific CI branches and then pushes them, which trigger the 
Travis builds

Hope that can help you.

Regards,

Even

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the mapguide-internals mailing list