2.2.1 2025-04-10
~~~~~~~~~~~~~~~~

Fixes:

- Security fix to prevent XSS injections in demo pages
- Security fix to prevent reading file urls


2.2.0 2024-07-24
~~~~~~~~~~~~~~~~

Improvements:

  - Add timeout to SQLite connect for geopackages. This helps against locking exceptions
  - Improvement of documentation, typos, wrong cli commands, old python2 stuff
  - The WMTS capabilites will now advertise the WMS GetLegendGraphic as a LegendURL if both services are active
  - It is possible now to configure LegendURLs that should be shown in the WMTS capabilities
  - A new method for plugins to intercept and modify requests made to MapProxy was added.

Maintenance:

  - Removal of debian package information
  - Fix docs workflow

Fixes:

  - Remove import of the packaging library that does not appear in the `install_requires`
  - Only install and use `importlib_resources` in python 3.8


2.1.1 2024-07-16
~~~~~~~~~~~~~~~~
Fixes:

  - Fix version of jsonschema in setup.py
  - Fix alpine docker build
  - Fix doc generation workflow


2.1.0 2024-07-16
~~~~~~~~~~~~~~~~
Improvements:

  - Configuration files can no be splitted into multiple files
  - Added jsonschema to validate configuration files
  - New theme for documentation, overall improvement of the documentation and github workflow for automatic creation
  - Improved docker images with better entrypoint and workflow to build docker images with a builder image
  - Added release workflow for automatic publishing on pypi and github

Maintenance:

  - Dependency updates
  - Remove python 2 compatibility functions
  - Added flake8 linting
  - setup.py contains now required libraries
  - Remove depracated `pkg_resources` in favor of `importlib_resources`
  - Addressed shapely deprecations

Fixes:

  - Ensure make_app always returns MapProxyApp instance
  - Allow feature info responses of combined sources to be empty
  - Fix broken TMS demo
  - Fix problem with dimensions in load_tile_metadata
  - Fix GeoTIFF Headers


2.0.2 2024-01-10
~~~~~~~~~~~~~~~~

Fixes:

- Revert PR "Fix mixed image format for file, S3 and azureblob caches"

2.0.1 2024-01-05
~~~~~~~~~~~~~~~~~
Improvements:

- Alpine based docker images have been added
- Added parameter to change background map source in layer preview
- Dependency updates

Fixes:

- Rendering issue: Check for existing tile coordinates before using them
- Fix mixed image format for file, S3 and azureblob caches


2.0.0 2023-12-19
~~~~~~~~~~~~~~~~~
Breaking:

- Removal of old unsupported python versions 3.7
- Tested python version range is now 3.8 to 3.11
- Lots of dependency updates

Improvements:

- Add S3 performance option to request via urllib2
- Allow md5 calls to work in FIPS environments
- Several Redis Cache enhancements
- Coverage support for caches

Fixes:

- Configure image options for caches (fixes erratically white tiles when requesting multiple cached layers)
- Fix for Legends in JSON Format
- Some more minor fixups


1.16.0 2023-04-13
~~~~~~~~~~~~~~~~~
Breaking:

- Removal of old unsupported python versions 2.7 and 3.6
- Tested python version range is now 3.7 to 3.11
- Lots of dependency updates

Improvements:

- New cache: Azure Blob storage
- Lots of dependency updates
- Support for JSON legends
- Updated layer preview to use latest openlayers
- Official docker images released, documentation updated

Fixes:

- Fixed issues with sqlite cache (#629 and #625)
- Dependency correction
- library detection difficulties on some operating systems
- encoding issues with umlauts in featureinfo
- Several minor bugfixes
- mapproxy-util export - derive image format from cache config

1.15.1 2022-06-14
~~~~~~~~~~~~~~~~~

Fixes:

- Fixup release on PyPI

1.15.0 2022-06-14
~~~~~~~~~~~~~~~~~

Improvements:

- WMS Dimension caching (#449)
- Add a mechanism to define plugins (#578)
- Support of non-EPSG SRS authorities (#572)
- Support for python 3.10 (#582)

Fixes:

- Several minor bugfixes

1.14.0 2021-11-24
~~~~~~~~~~~~~~~~~

Improvements:

- Refresh while serving (#518).
- Enabled commandline option `skip uncached` (#515)
- Several dependencies updated
- Support for python 3.5 has been dropped because of its EOL, 3.9 has been added

Fixes:

- Several minor bugfixes
- Security fix to avoid potential web cache poisoning.

1.13.2 2021-07-14
~~~~~~~~~~~~~~~~~

Fixes:

- Hotfix: Fixup demo service (#528).

1.13.1 2021-07-13
~~~~~~~~~~~~~~~~~

Improvements:

- Support cookie management for HTTP sources.

Fixes:

- Security fix for local file disclosure (#526).

1.13.0 2020-11-18
~~~~~~~~~~~~~~~~~

Improvements:

- Proj: Support for PROJ>=5 via pyproj.
- Services: New hide_exception_url option to hide source URLs.
- Tile sources: Support '@' in URL path (e.g. /0/0/0@2x.png)

Fixes:

- Various fixes for Python 3.8 compatibility.
- WMS: Always query WMS server in supported SRS.
- Fix warnings for tagged layer sources in layers.
- Demo: Fix capabilites "as HTML" when running behind a proxy


1.12.0 2019-08-30
~~~~~~~~~~~~~~~~~

Improvements:

- Cache: Rescale tiles existing tiles with new upscale_tiles/downscale_tiles option.
- Cache: Finer control for reprojection sources with preferred_src_proj option.
- WMS: Add georeference to TIFF images (GeoTIFF).
- WMS: Support for compressed TIFF images (LZW/JPEG).
- WMS: Advertise MaxWidth/MaxHeight.
- WMTS: Support for FeatureInfo requests.
- WMS/ArcGIS: Add on_error handler (similar to on_error handling for tile sources).
- WMS/WMTS: Add keyword_list to capabilities.
- S3: Support for custom S3 server and ACL.
- autoconfig: Support for username/password in URL.

Fixes:

- Various fixes for Python 3.6 and 3.7 compatibility.
- Set explicit permissions for write_atomic on Windows.


Other:

- WMS: Respond with highest supported WMS version (1.3.0 by default).
- Test: Now uses pytest instead of nosetest for all unit and system tests.
- YAML: Always use load_safe to support PyYAML >3 without warnings.
- Paster and eventlet specific code removed.


1.11.1 2019-08-06
~~~~~~~~~~~~~~~~~

Fixes:

- Fix Cross Site Scripting (XSS) issue in demo service. Fix for #322 did not
  properly escaped input used in JavaScript examples. Found by Janek Vind.

  A targeted attack could be used for information disclosure. For
  example: Session cookies of a third party application running on
  the same domain.


1.11.0 2017-11-20
~~~~~~~~~~~~~~~~~

Improvements:

- Improve reprojection performance and accuracy.
- ArcGIS compact cache: Support for version 2.
- ArcGIS compact cache: Improve performance for version 1.
- ArcGIS compact cache: Add ``mapproxy-util defrag`` to reduce bundle size
  after tiles were removed/updated.
- ArcGIS REST source: Support opts.map and seed_only.
- Use systems CA certs by default and fix ssl_no_cert_checks
  for Python >=2.7.9 and >=3.4
- WMS: Improve Bounding Boxes in Capabilities.
- Mapserver: Find mapserv binary in PATH environment.

Fixes:

- Seed: Always show last log line (100%).
- Fix saving transparent PNGs for some versions of Pillow
  (workaround for Pillow bug #2633)
- SQLite: Fix possible errors on first request after start.
- Demo: Fix demo client with `use_grid_names`.
- serve-develop: Fix header encoding for Python 3.
- Seed: Fix --interactive for Python 3.
- Support tagged layers for sources with colons in name.
- Support # character in Basis Authentication password.
- Fix import error with shapely>=1.6
- Fix duplicate level caches when using WMTS KVP with MBtile/SQLite/CouchDB.

Other:

- Remove support for Python 2.6

1.10.4 2017-08-17
~~~~~~~~~~~~~~~~~

Fixes:

- Fix Cross Site Scripting (XSS) issue in demo service (#322).
  A targeted attack could be used for information disclosure. For
  example: Session cookies of a third party application running on
  the same domain.


1.10.3 2017-07-07
~~~~~~~~~~~~~~~~~

Fixes:

- Fix crash during clipping
- Fix bilinear/bicubic resampling from cropped source
- Fix loading empty coverages

1.10.2 2017-06-21
~~~~~~~~~~~~~~~~~

Fixes:

- Fix coverage clipping for caches with a single source

1.10.1 2017-06-06
~~~~~~~~~~~~~~~~~

Fixes:

- Fix mapproxy-util serve-develop for Python 3.6 on Windows
- Fix OGR coverages on Windows with Python 3 and official OGR Python bindings
- Fix --repeat option of mapproxy-util scales

1.10.0 2017-05-18
~~~~~~~~~~~~~~~~~

Improvements:

- Support for S3 cache.
- Support for the ArcGIS Compact Cache format version 1.
- Support for GeoPackage files.
- Support for Redis cache.
- Support meta_tiles for tiles sources with bulk_meta_tiles option.
- mbtiles/sqlite cache: Store multiple tiles in one transaction.
- mbtiles/sqlite cache: Make timeout and WAL configurable.
- ArcGIS REST source: Improve handling for ImageServer endpoints.
- ArcGIS REST source: Support FeatureInfo requests.
- ArcGIS REST source: Support min_res and max_res.
- Support merging of RGB images with fixed transparency.
- Coverages: Clip source requests at coverage boundaries.
- Coverages: Build the difference, union or intersection of multiple coverages.
- Coverages: Create coverages from webmercator tile coordinates like 05/182/123
  with expire tiles files.
- Coverages: Add native support for GeoJSON (no OGR/GDAL required).
- mapproxy-seed: Add --duration, -reseed-file and -reseed-interval options.

Fixes:

- Fix level selection for grids with small res_factor.
- mapproxy-util scales: Fix for Python 3.
- WMS: Fix FeatureInfo precision for transformed requests.
- Auth-API: Fix FeatureInfo for layers with limitto.
- Fixes subpixel transformation deviations with Pillow 3.4 or higher.
- mapproxy-seed: Reduce log output, especially in --quiet mode.
- mapproxy-seed: Improve tile counter for tile grids with custom resolutions.
- mapproxy-seed: Improve saving of the seed progress for --continue.
- Fix band-merging when not all sources return an image.

Other:

- Python 2.6 is no longer supported.


1.9.1 2017-01-18
~~~~~~~~~~~~~~~~

Fixes:

- serve-develop: fixed reloader for Windows installations made
  with recent pip version (#279)

1.9.0 2016-07-22
~~~~~~~~~~~~~~~~

Improvements:

- New band merge feature. Allows to create false-color or grayscale
  images on the fly.
- Support for ArcGIS REST sources.
- Support multiple tilesets for each WMTS layer with the new
  tile_sources option.
- Allow to build WMS images from SQLite cache with more then 330 tiles.
- New `arcgis` cache layout. Compatible to ArcGIS exploded caches.
- New `mp` cache layout. Reduces number of nested directories.
- Prevent unneeded quantizing/re-encoding of images.
- Demo client: Support custom tile_size.

Fixes:

- Fix quantization error for some image modes
  (e.g. grayscale image with transparency)
- Support custom Proj4/EPSG files in mapproxy-util grid.
- Convert paletted images to RGB(A) to avoid NEAREST resampling.
- Fix quantizing with FASTOCTREE for paletted images with alpha channel.
- Keep configured layer order in WMTS capabilities.
- Fix coverage loading with Python 3.

Other:

- Make the output of various utils more clear.
- wms.md.title is no longer required, default to "MapProxy WMS".

1.8.2 2016-01-22
~~~~~~~~~~~~~~~~

Fixes:

- serve-develop: fixed reloader for Windows installations made
  with recent pip version

1.8.1 2015-09-22
~~~~~~~~~~~~~~~~

Improvements:

- WMS 1.3.0: support for metadata required by INSPIRE View Services
- WMS: OnlineResource defaults to service URL

Fixes:

- mapproxy-seed: fix race-condition which prevented termination at the
  end of the seeding process
- autoconfig: parse capabilities without ContactInformation
- SQLite cache: close files after seeding
- sqlite/mbtiles: fix tile lock location
- WMS 1.0.0: fix image format for source requests
- WMS: allow floats for X/Y in GetFeatureInfo requests
- CouchDB: fix for Python 3

Other:

- mapproxy-seed: seeding a cache with disable_storage: true returns
  an error
- all changes are now tested against Python 2.7, 3.3, 3.4 and 3.5

1.8.0 2015-05-18
~~~~~~~~~~~~~~~~

Features:

- Support for Python 3.3 or newer

Improvements:

- WMS is now available at /service, /ows and /wms
- WMTS KVP is now available at /service and /ows, RESTful service at /wmts
- allow tiled access to layers with multiple map:false sources
- add Access-control-allow-origin header to HTTP responses
- list KVP and RESTful capabilities on demo page
- disable verbose seed output if stdout is not a tty
- add globals.cache.link_single_color_images option
- support scale_factor for Mapnik sources

Fixes:

- handle EPSG axis order in WMTS capabilities
- pass through legends/featureinfo for recursive caches
- accept PNG/JPEG style image_format for WMS 1.0.0
- fix TMS capabilities in demo for TMS with use_grid_names
- fix ctrl+c behaviour in mapproxy-seed
- fix BBOX parsing in autoconf for WMS 1.3.0 services

Other:

- 1.8.0 is expected to work with Python 2.6, but it is no longer officially supported
- MapProxy will now issue warnings about configurations that will change with 2.0.
  doc/mapproxy_2.rst lists some of the planed incompatible changes

1.7.1 2014-07-08
~~~~~~~~~~~~~~~~

Fixes:

- fix startup of mapproxy-util when libgdal/geos is missing


1.7.0 2014-07-07
~~~~~~~~~~~~~~~~

Features:

- new `mapproxy-util autoconf` tool
- new versions option to limit supported WMS versions
- set different max extents for each SRS with bbox_srs

Improvements:

- display list of MultiMapProxy projects sorted by name
- check included files (base) for changes in reloader and serve-develop
- improve combining of multiple cascaded sources
- respect order of --seed/--cleanup tasks
- catch and log sqlite3.OperationalError when storing tiles
- do not open cascaded responses when image format matches
- mapproxy-seed: retry longer if source fails (100 instead of 10)
- mapproxy-seed: give more details if source request fails
- mapproxy-seed: do not hang nor print traceback if seed ends
  after permanent source errors
- mapproxy-seed: skip seeds/cleanups with empty coverages
- keep order of image_formats in WMS capabilities


Fixes:

- handle errors when loading to many tiles from mbtile/sqlite in
  one batch
- reduce memory when handling large images
- allow remove_all for mbtiles cleanups
- use extent from layer metadata in WMTS capabilities
- handle threshold_res higher than first resolution
- fix exception handling in Mapnik source
- only init libproj when requested

Other:

- 1.7.x is the last release with support for Python 2.5
- depend on Pillow if PIL is not installed

1.6.0 2013-09-12
~~~~~~~~~~~~~~~~

Improvements:

- Riak cache supports multiple nodes

Fixes:

- handle SSL verification when using HTTP proxy
- ignore errors during single color symlinking

Other:

- --debug option for serve-multiapp-develop
- Riak cache requires Riak-Client >=2.0

1.6.0rc1 2013-08-15
~~~~~~~~~~~~~~~~~~~

Features:

- new `sqlite` cache with timestamps and one DB for each zoom level
- new `riak` cache
- first dimension support for WMTS (cascaded only)
- support HTTP Digest Authentication for source requests
- remove_all option for seed cleanups
- use real alpha composite for merging layers with transparent
  backgrounds
- new tile_lock_dir option to write tile locks outside of the cache dir
- new decorate image API
- new GLOBAL_WEBMERCATOR grid with origin:nw and EPSG:3857

Improvements:

- speed up configuration loading with tagged sources
- speed up seeding with sparse coverages and limited levels
  (e.g. only level 17-20)
- add required params to WMS URL in mapproxy-util wms-capabilities
- support for `@` and `:` in HTTP username and password
- try to load pyproj before using libproj.dll on Windows
- support for GDAL python module (osgeo.ogr) besides using gdal.so/dll
  directly
- files are now written atomical to support concurrent access
  to the same tile cache from different servers (e.g. via NFS)
- support for WMS 1.3.0 in mapproxy-util wms-capabilities
- support layer merge for 8bit PNGs
- support for OGR/GDAL 1.10
- show TMS root resource at /tms

Fixes:

- support requests>=1.0 for CouchDB cache
- HTTP_X_FORWARDED_HOST can be a list of hosts
- fixed KML for caches with origin: nw
- fixed 'I/O operation on closed file' errors
- fixed memory leak when reloading large configurations
- improve handling of mixed grids/formats when using caches as
  cache sources
- threading related crashes in coverage handling
- close OGR sources
- catch IOErrors when PIL/Pillow can't identify image file

Other:

- update example configuration (base-config)
- update deployment documentation
- update OpenLayers version in demo service
- use restful_template URL in WMTS demo
- update MANIFEST.in to prevent unnecessary warnings during installation
- accept Pillow as depencendy instead of PIL when already installed
- deprecate use_mapnik2 option

1.5.0 2012-12-05
~~~~~~~~~~~~~~~~

Features:

- read remove_before/refresh_before timestamp from file
- add --concurrency option to mapproxy-utils export

Fixes:

- fixed where option for coverages (renamed from ogr_where)
- only write seed progess with --continue or --progress-file option

Other:

- add EPSG:3857 to WMS default SRSs and remove UTM/GK
- remove import error warning for shapely
- create metadata table in MBTiles caches

1.5.0rc1 2012-11-19
~~~~~~~~~~~~~~~~~~~

Features:

- clipping of tile request to polygon geometries in security API
- WMTS support in security API
- mixed_image mode that automatically chooses between PNG/JPEG
- use caches as source for other caches
- `mapproxy-util grids` tool to analyze grid configurations
- `mapproxy-util wms-capabilities` tool
- `mapproxy-util export` tool
- use_grid_names option to access Tiles/TMS/KML layers by grid
  name instead of EPSGXXXX
- origin option for TMS to change default origin of the /tiles service
- continue stopped/interrupted seed processes
- support min_res/max_res for tile sources

Improvements:

- do not show layers with incompatible grids in WMTS/TMS demo
- make 0/0/0.kml optional for the initial KML file
- use BBOX of coverage for capabilities in seed_only layers
- ignore debug layer when loading tile layers
- simplified coverage configuration
- add reloader option to make_wsgi_app()
- add MetadataURL to WMS 1.1.1 capabilities
- improved WMTS services with custom grids (origin)
- use in_image exceptions in WMS demo client
- larger map in demo client
- always request with transparent=true in WMS demo client
- use in_image exceptions in WMS demo client

Fixes:

- fixed reloading of multiapps in threaded servers
- fixed BBOX check for single tile requests
- fixed TMS for caches with watermarks
- fixed limited_to clipping for single layer requests with service-wide
  clipping geometries
- fixed WMTS RESTful template

Other:

- deprecated `origin` option for tile sources was removed
- empty tiles are now returned as PNG even if requested as .jpeg


1.4.0 2012-05-15
~~~~~~~~~~~~~~~~~

Fixes:

- fix TypeError exception when auth callback returns {authorized:'full'}
- use MAPPROXY_LIB_PATH on platforms other that win32 and darwin
- raise config error for mapnik sources when mapnik could not be imported

1.4.0rc1 2012-05-02
~~~~~~~~~~~~~~~~~~~

Features:

- support clipping of requests to polygon geometries in security API
- support for WMS 1.3.0 extended layer capabilities
- on_error handling for tile sources. fallback to empty/transparent
  tiles when the source returns HTTP codes like 404 or 204
- add HTTP Cache-Control header to WMS-C responses

Improvements:

- WMS source requests and requests to cached tiles are now clipped
  to the extent. this should prevent projection errors when requesting
  large bbox (e.g. over 180/90 in EPSG:4326)
- improved lock timeouts in mapproxy-seed
- the debug source does not overwrite the layer extent anymore.
  makes it more usable in demo/wms clients
- support for multiple files and recursion in base option
- mapproxy-seed ETA output is now more responsive to changes in seed speed
- improved demo service
  - choose different SRS for WMS layers
  - support for WMTS

Fixes:

- support loading of WKT polygon files with UTF8 encoding and BOM header
- upgraded dictspec module with fix for some nested configuration specs.
  a bug prevented checking of the layers configuration

Other:

- the documentation now contains a tutorial
- old layer configuration syntax is now deprecated
- EPSG:4326/900913/3857 are now always initialized with the +over proj4
  option to prevent distortions at the dateline
  see: http://fwarmerdam.blogspot.de/2010/02/world-mapping.html

1.3.0 2012-01-13
~~~~~~~~~~~~~~~~

No changes since 1.3.0b1

1.3.0b1 2012-01-03
~~~~~~~~~~~~~~~~~~

Features:

- support for RESTful WMTS requests with custom URL templates
- support for CouchDB as tile backend
- support for Mapnik 2 sources
- limit maximum WMS response size with max_output_pixels
- new color option for watermarks
- new ``mapproxy-util serve-multiapp-develop`` command
- new wms.bbox_srs option for bounding boxes in multiple SRS in WMS
  capabilities

Improvements:

- log exceptions when returning internal errors (500)

Fixes:

- fix BBOX in WMS-C capabilities
- prevent exception for WMS requests with unsupported image formats with
  mime-type options (like 'image/png; mode=24bit')
- fixed blank image results for servers that call .close() on the
  response (like gunicorn)

Other:

- origin option for tile sources is deprecated. use a custom grid with
  the appropriate origin.

1.2.1 2011-09-01
~~~~~~~~~~~~~~~~

Fixes:

- fixed configuration of watermarks
- support for unicode title in old-style layer configuration

1.2.0 2011-08-31
~~~~~~~~~~~~~~~~

Fixes:

- fixed links in demo service when running as MultiMapProxy

1.2.0b1 2011-08-17
~~~~~~~~~~~~~~~~~~

Features:

- support for MBTiles cache
- support for (tagged-) layers for Mapnik sources
- configurable cache layout (tilecache/TMS)
- new `mapproxy-util scales` tool
- use MultiMapProxy with server scripts
  (mapproxy.multiapp.make_wsgi_app)

Fixes:

- prevent black borders for some custom grid configurations
- all fixes from 1.1.x

1.1.2 2011-07-06
~~~~~~~~~~~~~~~~

Fixes:

- compatibility with older PyYAML versions
- do not try to transform tiled=true requests
- escape Windows path in wsgi-app template

1.1.1 2011-06-26
~~~~~~~~~~~~~~~~

Fixes:

- add back transparent option for mapnik/tile sources (in addition
  to image.transparent)
- keep alpha channel when handling image.transparent_color
- fixed combining of multiple WMS layers with transparent_color
- fixed header parsing for MapServer CGI source

1.1.0 2011-06-01
~~~~~~~~~~~~~~~~

Other:

- Changed license to Apache Software License 2.0

Fixes:

- fixed image quantization for non-png images with
  globals.image.paletted=True

1.1.0rc1 2011-05-26
~~~~~~~~~~~~~~~~~~~

Improvements:

- add template to build MapProxy .deb package
- font dir is now configurable with globals.image.font_dir

Fixes:

- fixed errors in config spec

1.1.0b2 2011-05-19
~~~~~~~~~~~~~~~~~~

Improvements:

- unified logging
- verify mapproxy/seed configurations

1.1.0b1 2011-05-12
~~~~~~~~~~~~~~~~~~

Features:

- support for tagged WMS source names: wms:lyr1,lyr2
- new Mapserver source type
- new Mapnik source type
- new mapproxy-util command
- include development server (``mapproxy-util serve-develop``)
- first WMTS implementation (KVP)
- configurable image formats
- support for ArcGIS tile sources (/L09/R00000005/C0000000d)
- support for bbox parameter for tile sources

Improvements:

- tweaked watermarks on transparent images
- [mapproxy-seed] initialize MapProxy logging before seeding
- authentication callbacks get environ and qusery_extent
- authentication callbacks can force HTTP 401 returns
- hide error tracebacks from YAML parser
- support for multipolygons in coverages
- add support for HTTP_X_SCRIPT_NAME
- support for integer images (e.g. 16bit grayscale PNG)

Fixes:

- fixes demo on Windows (loaded static content from wrong path)
- fixed one-off error with grid.max_res: last resolution is now < max_res
  e.g. min_res: 1000 max_res: 300 -> now [1000, 500], before [1000, 500, 250]
- add workaround for Python bug #4606 (segfaults during projection on 64bit
  systems)
- do not add attribution to WMS-C responses

Other:

- removed Paste dependencies
- removed deprecated mapproxy-cleanup tool, feature included in mapproxy-seed

1.0.0 2011-03-03
~~~~~~~~~~~~~~~~

- no changes since 1.0.0rc1

1.0.0rc1 2011-02-25
~~~~~~~~~~~~~~~~~~~

Improvements:

- handle epsg:102100 and 102113 as equivalents to 900913/3857

Fixes:

- fixed attribution placement and padding

1.0.0b2 2011-02-18
~~~~~~~~~~~~~~~~~~

Improvements:

- [mapproxy-seed] support for configuration includes in mapproxy.yaml (base)
- [mapproxy-seed] updated config templates
- KML: reduce number of required KML requests
- KML: improve superoverlays with res_factor != 2

Fixes:

- [mapproxy-seed] apply globals from mapproxy.yaml during seed
- fix tile_lock cleanup
- merging of cache sources with only tile sources failed


1.0.0b1 2011-02-09
~~~~~~~~~~~~~~~~~~

Features:

- [mapproxy-seed] separated seed and cleanup tasks; call tasks independently
- XSL transformation of WMS FeatureInfo responses
- content aware merging of multiple XML/HTML FeatureInfo repsonses
- FeatureInfo types are configurable with wms.featureinfo_types
- request cascaded sources in parallel (with threading or eventlet)
  with new wms.concurrent_layer_renderer option
- disable GetMap requests for WMS sources (for FeatureInfo only sources)
- new cache.disable_storage option
- authorization framework
- new image.transparent_color option: replaces color with full transparency
- new image.opacity option: blend between opaque layers
- new watermark.spacing option: place watermark on every other tile
- new wms.on_source_errors option: capture errors and display notice in
  response image when some sources did not respond
- support for custom http headers for requests to sources
- add support for http options for tile source (user/password, https ssl
  options, headers, timeout)

Improvements:

- [mapproxy-seed] enhanced CLI (summary and interactive mode)
- combine requests to the same WMS URL
- support for local SLD files (sld: file://sld.xml)
- changed watermark color to gray: improves readability on full transparent
  images
- support for transparent/overlayed tile sources
- renamed thread_pool_size to concurrent_tile_creators
- tweaked KML level of detail parameters to fix render issues in Google Earth
  with tilted views

Fixes:

- rounding errors in meta-tile size calculation for meta_buffer=0
- work with upcomming PIL 1.2 release

0.9.1 2011-01-10
~~~~~~~~~~~~~~~~

Fixes:

- fixed regression in mapproxy_seed
- resolve direct WMS request issues with equal but not same
  SRS (e.g. 900913/3857)

0.9.1rc2 2010-12-20
~~~~~~~~~~~~~~~~~~~

Improvements:

- Allow nested layer configurations (layer groups/trees)
- Support custom path to libproj/libgdal with MAPPROXY_LIB_PATH environ
- Look for xxx if libxxx returned no results.
- Limit lat/lon bbox in WMS capabilities to +-89.999999 north/south values

Fixes:

- bug fix for threshold_res that overlap with the stretch_factor

0.9.1rc1 2010-12-07
~~~~~~~~~~~~~~~~~~~

Features:

- WMS 1.1.0 support
- Coverage support (limit sources to areas via WKT/OGC polygons)
- new base option to reuse configurations
- ScaleHint support (min/max_res, min/max_scale)
- Support for multiple MapProxy configurations in one process with distinct
  global/cache/source/etc. configurations
- New MultiMapProxy: dynamically load multiple configurations (experimental)
- threshold_res option for grids: switch cache levels at fixed resolutions
- seed_only option for sources: allows offline usage
- GetLegendGraphic support
- SLD support for WMS sources

Improvements:

- concurrent_requests limit is now per unique hostname and not per URL
- concurrent_requests can be set with globals.http.concurrent_requests
- font_size of watermark is now configurable
- improved configuration loading time and memory consumption
- make use of PyYAML's C extension if available
- cache projection attributes in SRS objects for better performance
- try system wide projection definitions first, then fallback to defaults
  (e.g. for EPSG:900913)
- trailing slash is now optional for /tms/1.0.0
- support for http.ssl_ca_cert for each WMS source
- support for http.client_timeout for each WMS source (Python >=2.6)

Fixes:

- removed start up error on systems where proj4 misses EPSG:3857
- fixed color error for transparent PNG8 files
- fixed links in demo service when URL is not /demo/
- removed memory leak proj4 wrapper
- fixed mapproxy-seed -f option
- tests work without Shapely

0.9.0 2010-10-18
~~~~~~~~~~~~~~~~

- minor bug fixes

0.9.0rc1 2010-10-13
~~~~~~~~~~~~~~~~~~~

- new OpenLayers-based '/demo' service that shows all configured WMS/TMS layers
- display welcome message at '/' instead of 'not found' error
- less rigid feature info request parser (no error with missing style or format
  parameters). Use wms.strict to enable OCG compliant mode.
- updated tempita to 0.5

0.9.0b2 2010-09-20
~~~~~~~~~~~~~~~~~~

- new minimize_meta_requests option
- moved python implementation dependent code to mapproxy.platform module

0.9.0b1 2010-08-30
~~~~~~~~~~~~~~~~~~

- Improved support for EPSG:3857
- Source requests now never go beyond the grid BBOX even with meta_buffers/meta_tiles
- removed install_requires
  - flup: not required for all deployment options
  - tempita: now embeded
- now Python 2.7 compatible
- [mapproxy-seed] fixed libgdal loading on some Linux systems
- [mapproxy-seed] check for intersections on all levels
- add origin options to /tiles service to support Google Maps clients
- Improved PNG performance with PIL fastpng branch.
- New concurrent_requests option to limit requests for each source WMS server.
- minor bug fixes

0.9.0a1 2010-07-27
~~~~~~~~~~~~~~~~~~

- new configuration format (merged proxy.yaml and service.yaml)
- refactoring of the caching (sources and layers)
- large refactoring of the package layout

- pyproj dependency is not required when libproj is available
- removed jinja dependency

- more options to define tile grids (min_res, max_res, etc.)

0.8.4 2010-08-01
~~~~~~~~~~~~~~~~

- Extra newline at the end of all templates. Some deployment setups
  removed the last characters.
- Improved PNG performance with PIL fastpng branch.
- New concurrent_requests option to limit requests for each source WMS server.

0.8.3 2010-06-01
~~~~~~~~~~~~~~~~

- Some bug fixes regarding feature info
- The configured resolutions are sorted

0.8.3rc2 2010-05-25
~~~~~~~~~~~~~~~~~~~

- HTTPS support with certificate verification and HTTP Basic-
  Authentication.
- New `use_direct_from_level` and `use_direct_from_res` options to
  disable caching for high resolutions.
- New `cache_tiles` source for more flexible tile-based sources
  Supports url templates like '/tiles?x=%(x)s&y=%(y)s&level=%(z)s'
  and Quadkeys as used by Bing-Maps. (as suggested by Pascal)
- You can limit the SRS of a source WMS with the `supported_srs`
  option. MapProxy will reproject between cached/requested SRS and
  the supported. This also works with direct layers, i.e. you can
  reproject WMS on-the-fly.

0.8.3rc1 2010-04-30
~~~~~~~~~~~~~~~~~~~

- new improved seed tool

  - seed polygon areas instead BBOX (from shapefiles, etc)
  - advanced seeding strategy
  - multiprocessing

- new link_single_color_images layer option. multiple "empty" tiles will
  be linked to the same image. (Unix only)
- fixed transparency for image parts without tiles
- log HTTP requests to servers regardless of the success
- made proj4 data dir configurable
- use same ordering of layers in service.yaml for capabilities documents
  (use list of dicts in configuration, see docs)
- performance improvements for requests with multiple layers and
  for layers with smaler BBOXs

0.8.2 2010-04-13
~~~~~~~~~~~~~~~~

- no changes since 0.8.2rc1

0.8.2rc1 2010-04-01
~~~~~~~~~~~~~~~~~~~

- add fallback if PIL is missing TrueType support
- use zc.lockfile for locking
- improved logging:

  - log to stdout when using develop.ini
  - add %(here)s support in log.ini (changed from {{conf_base_dir}})
  - do not enable ConcurrentLogHandler by default

0.8.1 2010-03-25
~~~~~~~~~~~~~~~~

- improved performance for simple image transformation
  (same srs and same resolution) #4

0.8.0 2010-03-22
~~~~~~~~~~~~~~~~

- initial release
