[postgis-devel] PostGIS Development Roadmap

Mark Cave-Ayland mark.cave-ayland at siriusit.co.uk
Thu Apr 17 04:21:33 PDT 2008


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.

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.


- Build dependencies

When developing the code, errors can slip by in cases where developers 
haven't tried re-compiling without various libraries. My suggestion 
would be to make GEOS and PROJ.4 *compulsory* for PostGIS, and to see if 
we can devise some C wrapper macros like 
PGIS_REQUIRES_GEOS_VERSION(major, minor) which can be used both within 
code and the regression tests for code that requires newer functionality.


- 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.


- 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 :)


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.


ATB,

Mark.

-- 
Mark Cave-Ayland
Sirius Corporation - The Open Source Experts
http://www.siriusit.co.uk
T: +44 870 608 0063




More information about the postgis-devel mailing list