Wednesday, February 26, 2014

Changing tracks on the GeoTools release train

The GeoTools release train has been burning through the stations and setting a rapid pace.

This activity marks a great deal of research and development, and a track record of consistent planned delivery. The turn around time for stable releases is also an important measure for getting fixes out to developers. Everything thing looks great right?

Holding on for the Ride

There is a downside to this rapid pace. In February I had a chance to do a roll call of LocationTech projects using GeoTools. Here is what I found:

- GeoGit uses GeoTools 9.0
- GeoMesa uses GeoTools 9.5
- GeoScript python uses GeoTools 9.0
- GeoScript Java Script uses GeoTools 9.0
- GeoScript Scala uses GeoTools 9.3
- GeoScript Groovy uses GeoTools 11-SNAPSHOT
- GeoTrellis uses GeoTools 9.5
- uDig uses GeoTools 9.0-M1

Not only were these projects not using the latest they were back on GeoTools 9 series (which had reached its "End-of-Life" in August 2013).

The release train was proving too exciting and many projects had simply fallen off.

Switching Gears

In discussions on the developer email list it gradually came out that there was a tension between having access prompt access to a release (wonderful when you are waiting for a fix) and the testing burden associated with upgrading (falling off the ride).

From an RnD standpoint the 6 month cycle is working out well. GeoTools needed a way to hold on to stable releases longer without over taxing the developer community.

Here is the resulting change proposal: Extended Release Schedule
  1. Drop back to releasing every other month
  2. Extend the release schedule with a 6 month maintenance phase
This proposal has now been accepted. Both the GeoTools and GeoServer release schedule will be effected.

Planning GeoTools 11

GeoTools 11 is scheduled for release in March, and will see a release every second month as we alternate between stable and maintenance branches.
  • GeoTools 11.0: March 2014 (Stable)
  • GeoTools 11.1: May 2014
  • GeoTools 11.2: July 2014
  • GeoTools 11.3: October 2014 (Maintenance)
  • GeoTools 11.4: December 2014
  • GeoTools 11.5: February 2015
Additional point releases may of course be added at the bequest of a development team. If you fall in a gap between releases don't be afraid to speak up.

Planning GeoTools 10

GeoTools 10 will no longer be retired in March, and is now extended with additional 6 months of life as a "maintenance" branch.
  • GeoTools 10.5: Feb 2014 (Stable)
  • GeoTools 10.6: April 2014 (Maintenance)
  • GeoTools 10.7: June 2014
  • GeoTools 10.8: August 2014

GeoTools 10.5 Released

The GeoTools community is happy to bring you the latest GeoTools 10.5 download:
This release is available from our Maven repository for use with your build system.

A few fixes since 10.4:
  • Assorted Image Mosaic improvements and bug fixes
  • Upgrade to ImageIO-Ext 1.1.8
  • Optimizations to SimplifyingFilterVisitor and filter endcoding
  • Support the the PostgreSQL citext type
  • Changes to the SQLite JDBC driver to avoid conflict with non-SpatiaLite version 
  • And more, see the GeoTools 10.5 Release Notes for additional details
About GeoTools 10.x Series
Summary of the new features for the GeoTools 10.x series:
  • Structured grid coverage readers allow raster data sources that publish composite data products to expose individual rasters (ie granules) for processing, while still providing a seamless experience for rendering. The mosaic and NetCDF modules are the first ones to implement these new interfaces.
  • Efficient support for multiple coverages in GridCoverageReader provides ad-hoc access to raster formats that publish more that one data product. A image mosaic made of NetCDF granules and single file NetCDF sources are the first implementors of these new capabilities
  • new implementation of Shapefile DataStore (based on ContentDataStore superclass). This upgrade should be seamless for all users using DataStoreFactoryFinder. If you explicitly made use of the ShapefileDataStore or IndexedShapefileDataStore class please check the upgrade instructions.
  • The transform module graduated to supported status, providing a seamless way to rename, retype and hide SimpleFeatureSource attributes, as well as creating new ones based on OGC Expression
  • Additional OGC modules for the WCS 2.0 and WCS 2.0 EO models as well as adding XML parsers and encoders
  • Support for fills made with randomized symbols
The 10.x series features a number of research and development activities:
  • NetCDF has been updated to take advantage of the new coverage API introduced above
  • GeoPackage: a sample implementation of the geopackage spec that is currently being developed by the OGC
If you are interested in helping out please introduce yourself on geotools-devel mailing list.

The GeoTools Community

Thursday, February 20, 2014

GeoTools 11-RC1 Released

The GeoTools community overjoyed to bring you the latest GeoTools 11-RC1 download:
This release is also available from our maven repository.

This release is made in conjunction with GeoServer 2.5-RC1.

About GeoTools 11-RC1

Thanks to everyone who help test the beta, GeoTools 11.0 is on track for release March 18th. If you have not yet had a chance to perform integration testing with please do so now with 11-RC1 to prevent surprises.

This release candidate hosts a great number of hardening fixes. Filter expressions now do a better job of comparing literals and comparing numbers. Importantly null handling is now consistent between local GeoTools Filters and those performed using SQL.

NetCDF support continues to improve, as does GeoPackage support. OGR support is now working for OSX. For anyone having trouble with multi-line labels SLDTransform is now better at using CDATA to preserve whitespace.

For more information check the GeoTools 11-RC1 Release Notes.

About GeoTools 11.x Series

Summary of the new features for the GeoTools 11.x series:
  • The DataStore API has a new removeSchema method to drop feature types. This new optional feature is currently implemented by the JDBCDataStore family (all spatial database backed stores), other stores will likely throw an UnsupportedOperationException
  • JDBCDataStore now exposes facilities to list, create and destroy indexes on database columns.
  • Ability to create and drop databases from the PostgisNGFactory
  • PostGis data store will now call ST_Simplify when the GEOMETRY_SIMPLIFICATION hint is provided, significantly speeding up loading of complex geometries  (the renderer can perform scale based simplification already, but doing it before sending the data speeds up data retrieval significantly)
  • ImageMosaic can now manage vector footprints for its granules, allowing to filter out no-data or corrupted sections of the imagery
  • All properties in a SLD style can now have a local unit of measure, as opposed to specifying the unit of measure per symbolizer. For example, if you need to have a line width to be 10 meters, its value can now be "10m"
  • Improved handling of data with 3D coordinates in JDBC data stores
  • A number of small improvements to the rendering engine, such as improved raster icon placement resulting in cleaner, less blurry output, improved label grouping, better handling of icons at the border of the map and in general much improved estimation of the buffer area needed to include all symbols in a map (for features that sit outside the map, but whose symbols are big enough to enter it).