[postgis-devel] PostGIS Development Roadmap

Magnus Hagander magnus at hagander.net
Thu Apr 17 04:31:40 PDT 2008


On Thu, 17 Apr 2008 12:21:33 +0100
Mark Cave-Ayland <mark.cave-ayland at siriusit.co.uk> wrote:

Generally lurker on this list, but hey, here's a good chance to
comment...

> Hi everyone,
> 
> Having got 1.3.3 out of the door and into the wild, I'd like to share
> some thoughts about the current state of the PostGIS codebase and how
> we can improve it. One of my primary aims is to get things to the
> point where MSVC can be used to compile PostGIS; while MingW/MSYS
> works perfectly well for building PostGIS, it can take a while to set
> up a suitable environment, and building can be particularly slow.

As the main win32 guy for the main project, +42 for that one :-) It
also helps a lot with debugging at the end users installation.


> With this in mind, I'd like to suggest the following:
> 
> 
> - Build system overhaul
> 
> In order to extract certain MSVC build vars into separate header
> files (so they can be generated by an MSVC script as appropriate),
> it is necessary to spend some time on the autoconf system. In
> particular, I'd like to work on external library detection to make it
> more robust and display more useful information on the screen.
> 
> Whilst we're doing this, it also makes sense to try and re-work
> PostGIS so that it uses the PGXS build infrastructure. This would
> enable us to remove our own copies of Makefile.shlib but would mean
> we would require PostgreSQL >= 8.0. I would distinctly prefer
> PostgreSQL >= 8.1 since 8.0 is missing some of the pg_config options
> required for a PostGIS build.

Note that pgxs doesn't work with the MSVC build of the backend, because
it relies on GNU Make and shellscrpits, IIRC.

Have you considered systems like cmake?

Finally, I think requiring 8.1+ makes perfect sense, given all the
fixes for GiST indexes that went in there (concurrency and
crash-safeness)


> - Regression tests
> 
> Regression tests under Win32 are mind-numbingly slow and only run
> under a bash shell. To better support MSVC, the test harness needs to
> be re-written in another language. My thoughts are that Perl would be
> the best language to use, since this is used by the main PostgreSQL
> MSVC build scripts.

Actually, the main PostgreSQL scripts have a specific regression test
driver written in C, that can run any kind of regression tests scripts.
It's also used by ecpg, for example. Perhaps you can use that one?

There is also a perlscript used to drive this file, but it's not the
actual driver of the regression tests, it's just a wrapper for
commandline args and file copying.


> - Stripping out dead code
> 
> If we are happy to require PostgreSQL >= 8.1 for future versions then 
> there is a lot of dead code that can be removed, specifically with 
> regard to statistics / GiST indexes. It would help tidy up the code
> base a lot :)

+1.


> So... there is a lot of work on this list which we really need to
> think about doing. Since the changes are quite involved, I am leaning
> towards working in a separate branch and then switching it to HEAD
> when something actually works for some more testing.
> 
> 
> Thoughts & comments welcome.

These are some quick comments from a PostGIS development outsider :-)
While I don't (currently) do any development on PostGIS, we do have a
number of customers that are running it, thus my interest.

//Magnus



More information about the postgis-devel mailing list