Hi List,
let's start with the good news: as of January 1st, I'm officially
retired, and so I'm finally able to dedicate myself to developing
SpatiaLite full-time.
The bad news is that next month I'll celebrate my seventieth
birthday and my energy isn't what it used to be; the age is
starting to take its toll.
--------------------------------------------------------
Let's move on to more technical elements.
In recent years, the ecosystem surrounding SpatiaLite has
seen many changes (not all of them positive).
Unfortunatelu this coincided with a long period of eclipse
during which I was forced to dedicate to maintenance of my
FLOSS projects just the minimum amount of time I could
barely find during breaks from my professional work, the
one that guaranteed me a regular income.
The net result of all this is that SpatiaLite has aged
significantly in many respects in the meantime, and so an
extraordinary effort is now needed to make up for all that
lost time.
Just to recap the most significant events:
- The latest versions of the GCC C/C++ compilers have
significantly raised the bar for code syntax checking;
what had been harmless warnings for decades have
suddenly become fatal errors.
This is a great decision that significantly improves
the quality and reliability of the code; but it also
means that the entire codebase needs to be carefully
checked and eventually rewritten, because many things
that previously worked flawlessly have now suddenly
stopped working.
- libxml2, for its part, has decided to remove support
for nanohttp.
From SpatiaLite's perspective, this means we've lost
the capability to read WFS datasources directly.
But the worst damage is that it's no longer possible
to verify the formal correctness of XML documents
against XSD schemas.
- wxWidgets, which is absolutely fundamental to
spatialite_gui, suddenly decided to consider
even the most trivial glitches in the position
of widgets within the parent window extremely
dangerous.
The practical effect is that with the latest
versions spatialite_gui has become practically
unusable because alarm messages continuously
appear on the screen.
Here too, a radical revision of the code is required;
but unlike what happens with the latest versions of
C/C++ compilers, these are errors that only appear
at runtime, and therefore require a lot of patient
(and boring) manual work to be identified and fixed.
- Let's move on to something much more attractive.
The most recent versions of GEOS have seen the
introduction of some very significant improvements
that expand the spatial analysis capabilities.
Just to mention the two that in my personal opinion
seem most interesting:
1. Support for CircularString, CompoundCurve,
and CurvePolygon geometries.
2. Support for Coverages, which seem like a
reasonably simple and straightforward way to
construct topologically correct polygon sets.
It will certainly require some effort (and time)
to support these latest innovations, but they seem
to be strategic targets for the next version of
SpatiaLite.
- Finally, the worst news concerns librasterlite2.
This library never really reached full maturity, and
its development always remained suspended halfway,
turning it into a never-ending story.
But it's absolutely essential for the development
of spatialite_gui, which remains the favorite tool
for most users who do not come from the classic GIS
world (and I personally am the first of this breed).
RasterLite must return to be a key member of
the family, and its completion is a strategic target
of the utmost importance.
--------------------------------------------------------
Current state of the art.
The most attentive among you will probably have noticed
that there have been no Commits in the Fossil repository
for a long time.
This does not mean at all that development completely
stopped during this period.
It means instead that the entire family has entered a state
of radical restructuring, which has inevitably led to a
fluid and rather confusing situation with continuous
adjustments of direction.
Luckily, since the beginning of last summer my pre-retirement
period has left me enough free time to resume the development
of SpatiaLite.
Much has already been done, but there's still much to do.
We're halfway there, and things aren't yet ready to return
to stability.
Things that have already been sorted out (and which took
quite a while after the long break):
- All problems with the new rules imposed by the C/C++
compilers have been definitively fixed.
- Just as all the issues caused by the latest versions
of wxWidgets.
- RasterLite is well underway in its rewrite from scratch,
and will no longer be an independent library but become
an integral part of libspatialite.
Maintaining two independent libraries has proven impossible
given the limited resources available; they must necessarily
merge to ensure they remain aligned and follow the same
release cycle, which is a fundamental prerequisite for
keeping spatialite_gui up to date as well.
Mext steps
=============================
My top priority is to get back to a stable configuration;
which essentially means finally closing the integration of
RasterLite within SpatiaLite.
This is a critical aspect because it has to do with all
the dependencies required towards other external libraries.
Once this milestone is reached I will finally be able to
return to regularly updating the Fossil repository, and we
can reasonably start evaluating the release of the next
SpatiaLite 6.0
Of course, GUI development will proceed in parallel.
v6.0 will most likely be an interim release that will
be still relatively incomplete, but this will allow us
to provide an updated version by spring.
It will then be followed by v6.1 (the real complete version
in all its parts), which I hope to be able to publish by
the fall.
In short, the SpatiaLite development process has finally
restarted.
A lot has already been done, but there's still a lot left
to do. It will certainly take time to make up for all the
delays accumulated over the past years.
Anyway, we're back on track and moving forward, and that's
all that matters.
I'll keep you regularly updated on this mailing list whenever
any significant milestones are reached.
best regards,
Sandro