]> git.openstreetmap.org Git - nominatim.git/blob - ChangeLog
prepare 5.0.0 release
[nominatim.git] / ChangeLog
1 5.0.0
2  * increase required versions for PostgreSQL (12+), PostGIS (3.0+)
3  * remove installation via cmake and debundle osm2pgsql
4  * remove deprecated PHP frontend
5  * remove deprecated legacy tokenizer
6  * add configurable pre-processing of queries
7  * add query pre-processor to split up Japanese addresses
8  * rewrite of osm2pgsql style implementation
9    (also adds support for osm2pgsql-themepark)
10  * reduce the number of SQL queries needed to complete a 'lookup' call
11  * improve computation of centroid for lines with only two points
12  * improve bbox output for postcode areas
13  * improve result order by returning the largest object when other things are
14    equal
15  * add fallback for reverse geocoding to default country tables
16  * exclude postcode areas from reverse geocoding
17  * disable search endpoint when database is reverse-only (regression)
18  * minor performance improvements to area split algorithm
19  * switch table and index creation to use autocommit mode to avoid deadlocks
20  * drop overly long ways during import
21  * restrict automatic migrations to versions 4.3+
22  * switch linting from pylint to flake8
23  * switch tests to use a wikimedia test file in the new CSV style
24  * various fixes and improvements to documentation
25
26 4.5.0
27  * allow building Nominatim as a pip package
28  * make osm2pgsql building optional
29  * switch importer to psycopg3
30  * allow output format of web search to be customized in self-installations
31  * look up potential postcode areas for postcode results
32  * add word usage statistics for address terms
33  * implement more light-weight CSV format for wiki importance tables
34  * rewrite SQL for place search to use window functions
35  * increase search radius when filtering by postcode
36  * prefer POI points over POI areas
37  * reintroduce full terms for address terms in search_name table
38  * reindex postcodes when their parent is deleted
39  * indexing: precompute counts of affected rows
40  * ensure consistent country assignments for overlapping countries
41  * make Nominatim[Async]API context manager to ensure proper calling of
42    close()
43  * make usage of project dir optional for library
44  * drop interpolations when no parent can be found
45  * style tweaks to reflect OSM usage (man_made, highway and others)
46  * deprecation of: bundled osm2pgsql, legacy tokenizer, PHP frontend
47  * make documentation buildable without CMake
48  * various fixes and improvements to documentation
49
50 4.4.1
51  * fix geocodejson output: admin level output should only print boundaries
52  * updating: restrict invalidation of child objects on large street features
53  * restrict valid interpolation house numbers to 0-999999
54  * fix import error when SQLAlchemy 1.4 and psycopg3 are installed
55  * various typo fixes in the documentation
56
57 4.4.0
58  * add export to SQLite database and SQLite support for the frontend
59  * switch to Python frontend as the default frontend
60  * update to osm2pgsql 1.11.0
61  * add support for new osm2pgsql middle table format
62  * simplify geometry for large polygon objects not used in addresses
63  * various performance tweaks for search in Python frontend
64  * fix regression in search with categories where it was confused with near
65    search
66  * partially roll back use of SQLAlchemy lambda statements due to bugs
67    in SQLAlchemy
68  * fix handling of timezones for timestamps from the database
69  * fix handling of full address searches in connection with a viewbox
70  * fix postcode computation of highway areas
71  * fix handling of timeout errors for Python <= 3.10
72  * fix address computation for postcode areas
73  * fix variable shadowing in osm2pgsql flex script, causing bugs with LuaJIT
74  * make sure extratags are always null when empty
75  * reduce importance of places without wikipedia reference
76  * improve performance of word count computations
77  * drop support for wikipedia tags with full URLs
78  * replace get_addressdata() SQL implementation with a Python function
79  * improve display name for non-address features
80  * fix postcode validation for postcodes with country code
81    (thanks @pawel-wroniszewski)
82  * add possibility to run imports without superuser database rights
83    (thanks @robbe-haesendonck)
84  * new CLI command for cleaning deleted relations (thanks @lujoh)
85  * add check for database version in the CLI check command
86  * updates to import styles ignoring more unused objects
87  * various typo fixes (thanks @kumarUjjawal)
88
89 4.3.2
90  * fix potential SQL injection issue for 'nominatim admin --collect-os-info'
91  * PHP frontend: fix on-the-fly lookup of postcode areas near boundaries
92  * Python frontend: improve handling of viewbox
93  * Python frontend: correct deployment instructions
94
95 4.3.1
96  * reintroduce result rematching
97  * improve search of multi-part names
98  * fix accidentally switched meaning of --reverse-only and --search-only in
99    warm command
100
101 4.3.0
102  * fix failing importance recalculation command
103  * fix merging of linked names into unnamed boundaries
104  * fix a number of corner cases with interpolation splitting resulting in
105    invalid geometries
106  * fix failure in website generation when password contains curly brackets
107  * fix broken use of ST_Project in PostGIS 3.4
108  * new NOMINATIM_SEARCH_WITHIN_COUNTRIES setting to restrict reverse lookups
109    to known countries (thanks @alfmarcua)
110  * allow negative OSM IDs (thanks @alfmarcua)
111  * disallow import of Tiger data in a frozen DB
112  * avoid UPDATE to change settings to be compatible with r/o DBs (thanks @t-tomek)
113  * update bundled osm2pgsql to 1.9.2
114  * reorganise osm2pgsql flex style and make it the default
115  * exclude names ending in :wikipedia from indexing
116  * no longer accept comma as a list separator in name tags
117  * process forward dependencies on update to catch updates in geometries
118    of ways and relations
119  * fix handling of isolated silent letters during transliteration
120  * no longer assign postcodes to large linear features like rivers
121  * introduce nominatim.paths module for finding data and libraries
122  * documentation layout changed to material theme
123  * new documentation section for library
124  * various smaller fixes to existing documentation
125    (thanks @woodpeck, @bloom256, @biswajit-k)
126  * updates to vagrant install scripts, drop support for Ubuntu 18
127    (thanks @n-timofeev)
128  * removed obsolete configuration variables from env.defaults
129  * add script for generating a taginfo description (thanks @biswajit-k)
130  * modernize Python code around BDD test and add testing of Python frontend
131  * lots of new BDD tests for API output
132
133 4.2.3
134
135  * fix deletion handling for 'nominatim add-data'
136  * adapt place_force_delete() to new deletion handling
137  * flex style: avoid dropping of postcode areas
138  * fix update errors on address interpolation handling
139
140 4.2.2
141
142  * extend flex-style library to fully support all default styles
143  * fix handling of Hebrew aleph
144  * do not assign postcodes to rivers
145  * fix string matching in PHP code
146  * update osm2pgsql (various updates to flex)
147  * fix slow query when deleting places on update
148  * fix CLI details query
149  * fix recalculation of importance values
150  * fix polygon simplification in reverse results
151  * add class/type information to reverse geocodejson result
152  * minor improvements to default tokenizer configuration
153  * various smaller fixes to documentation
154
155 4.2.1
156
157  * fix XSS vulnerability in debug view
158
159 4.2.0
160
161  * add experimental support for osm2pgsql flex style
162  * introduce secondary importance value to be retrieved from a raster data file
163    (currently still unused, to replace address importance, thanks to @tareqpi)
164  * add new report tool `nominatim admin --collect-os-info`
165    (thanks @micahcochran, @tareqpi)
166  * reorganise index to improve lookup performance and size
167  * run index creation after import in parallel
168  * run ANALYZE more selectively to speed up continuation of indexing
169  * fix crash on update when addr:interpolation receives an illegal value
170  * fix minimum number of retrieved results to be at least 10
171  * fix search for combinations of special term + name (e.g Hotel Bellevue)
172  * do not return interpolations without a parent street on reverse search
173  * improve invalidation of linked places on updates
174  * fix address parsing for interpolation lines
175  * make sure socket timeouts are respected during replication
176    (working around a bug in some versions of pyosmium)
177  * update bundled osm2pgsql to 1.7.1
178  * add support for PostgreSQL 15
179  * typing fixes to work with latest type annotations from typeshed
180  * smaller improvements to documentation (thanks to @mausch)
181
182 4.1.1
183
184  * fix XSS vulnerability in debug view
185
186 4.1.0
187
188  * switch to ICU tokenizer as default
189  * add housenumber normalization and support optional spaces during search
190  * add postcode format checking and support optional spaces during search
191  * add function for cleaning housenumbers in word table
192  * add updates/deletion of country names imported from OSM
193  * linked places no longer overwrite names from a place permanently
194  * move default country name configuration into yaml file (thanks @tareqpi)
195  * more compact layout for interpolation and TIGER tables
196  * introduce mutations to ICU tokenizer (used for German umlauts)
197  * support reinitializing a full project directory with refresh --website
198  * fix various issues with linked places on updates
199  * add support for external sanitizers and token analyzers
200  * add CLI commands for forced indexing
201  * add CLI command for version report
202  * add offline import mode
203  * change geocodejson to return a feature class in the 'type' field
204  * add ISO3166-2 to address output (thanks @I70l0teN4ik)
205  * improve parsing and matching of addr: tags
206  * support relations as street members of associatedStreet
207  * better ranking for address results from TIGER data
208  * adapt rank classification to changed tag usage in OSM
209  * update bundled osm2pgsql to 1.6.0
210  * add typing information to Python code
211  * improve unit test coverage
212  * reorganise and speed up code for BDD tests, drop support for scenes
213  * move PHP unit tests to PHP 9.5
214  * extensive typo fixes in documentation (thanks @woodpeck,@StephanGeorg,
215    @amandasaurus, @nslxndr, @stefkiourk, @Luflosi, @kianmeng)
216  * drop official support for installation on CentOS
217  * add installation instructions for Ubuntu 22.04
218  * add support for PHP8
219  * add setup instructions for updates and systemd
220  * drop support for PostgreSQL 9.5
221
222 4.0.2
223
224  * fix XSS vulnerability in debug view
225
226 4.0.1
227
228  * fix initialisation error in replication script
229  * ICU tokenizer: avoid any special characters in word tokens
230  * better error message when API php script does not exist
231  * fix quoting of house numbers in SQL queries
232  * small fixes and improvements in search query parsing
233  * add documentation for moving the database to a different machine
234
235 4.0.0
236
237  * refactor name token computation and introduce ICU tokenizer
238    * name processing now happens in the indexer outside the DB
239    * reorganizes abbreviation handling and moves it to the indexing phases
240    * adds preprocessing of names
241  * add country-specific ranking for Spain, Slovakia
242  * partially switch to using SP-GIST indexes
243  * better updating of dependent addresses for name changes in streets
244  * remove unused/broken tables for external housenumbers
245  * move external postcodes to CSV format and no longer save them in tables
246    (adds support for postcodes for arbitrary countries)
247  * remove postcode helper entries from placex (thanks @AntoJvlt)
248  * change required format for TIGER data to CSV
249  * move configuration of default languages from wiki into config file
250  * expect customized configuration files in project directory by default
251  * disable search API for reverse-only import (thanks @darkshredder)
252  * port most of maintenance/import code to Python and remove PHP utils
253  * add catch-up mode for replication
254  * add updating of special phrases (thanks @AntoJvlt)
255  * add support for special phrases in CSV files (thanks @AntoJvlt)
256  * switch to case-independent matching between place and boundary names
257  * remove disabling of reverse query parsing
258  * minor tweaks to search algorithm to avoid more false positives
259  * major overhaul of the administrator and developer documentation
260  * add security disclosure policy
261  * add testing of installation scripts via CI
262  * drop support for Python < 3.6 and Postgresql < 9.5
263
264 3.7.3
265
266  * fix XSS vulnerability in debug view
267
268 3.7.2
269
270  * fix database check for reverse-only imports
271  * do not error out in status API result when import date is missing
272  * add array_key_last function for PHP < 7.3 (thanks to @woodpeck)
273  * fix more url when server name is unknown (thanks to @mogita)
274  * commit changes to replication log table
275
276 3.7.1
277
278  * fix smaller issues with special phrases import (thanks @AntoJvlt)
279  * add index to speed up continued indexing during import
280  * fix index on location_property_tiger(parent_place_id) (thanks @changpingc)
281  * make sure Python code is backward-compatible with Python 3.5
282  * various documentation fixes
283
284 3.7.0
285
286  * switch to dotenv for configuration file
287  * introduce 'make install' (reorganising most of the code)
288  * introduce nominatim tool as replacement for various php scripts
289  * introduce project directories and allow multiple installations from same build
290  * clean up BDD tests: drop nose, reorganise step code
291  * simplify test database for API BDD tests and autoinstall database
292  * port most of the code for command-line tools to Python
293    (thanks to @darkshredder and @AntoJvlt)
294  * add tests for all tooling
295  * replace pyosmium-get-changes with custom internal implementation using
296    pyosmium
297  * improve search for queries with housenumber and partial terms
298  * add database versioning
299  * use jinja2 for preprocessing SQL files
300  * introduce automatic migrations
301  * reverse fix preference of interpolations over housenumbers
302  * parallelize indexing of postcodes
303  * add non-key indexes to speed up housenumber + street searches
304  * switch housenumber field in placex to save transliterated names
305
306 3.6.0
307
308  * add full support for searching by and displaying of addr:* tags
309  * improve address output for large-area objects
310  * better use of country names from OSM data for search and display
311  * better debug output for reverse call
312  * add support for addr:place links without an place equivalent in OSM
313  * improve finding postcodes with normalisation artefacts
314  * batch object to index for rank 30, avoiding a wrap-around of transaction
315    IDs in PostgreSQL
316  * introduce dynamic address rank computation for administrative boundaries
317    depending on linked objects and their place in the admin level hierarchy
318  * add country-specific address ranking for Indonesia, Russia, Belgium and
319    the Netherlands (thanks @hendrikmoree)
320  * make sure wikidata/wikipedia tags are imported for all styles
321  * make POIs searchable by name and housenumber (thanks @joy-yyd)
322  * reverse geocoding now ignores places without an address rank (rivers etc.)
323  * installation of a webserver is no longer mandatory, for development
324    use the php internal webserver via 'make serve
325  * reduce the influence of place nodes in addresses
326  * drop support for the unspecific is_in tag
327  * various minor tweaks to supplied styles
328  * move HTML web frontend into its own project
329  * move scripts for processing external data sources into separate directories
330  * introduce separate configuration for website (thanks @krahulreddy)
331  * update documentation, in particular, clean up development docs
332  * update osm2pgsql to 1.4.0
333
334 3.5.2
335
336  * ensure that wikipedia tags are imported for all styles
337  * reinstate verbosity for indexing during updates
338  * make house number reappear in display name on named POIs
339  * introduce batch processing in indexer to avoid transaction ID overrun
340  * increase splitting for large geometries to improve indexing speed
341  * remove deprecated get_magic_quotes_gpc() function
342  * make sure that all postcodes have an entry in word and are thus searchable
343  * remove use of ST_Covers in conjunction with ST_Intersects,
344    causes bad query planning and slow updates in Postgis3
345  * update osm2pgsql
346
347 3.5.1
348
349  * disable jit and parallel processing in PostgreSQL for osm2pgsql
350  * update libosmium to 2.15.6 (fixes an issue with processing hanging
351    on large multipolygons)
352
353 3.5.0
354
355  * structured select on HTML search page
356  * new PHP Nominatim\Shell class to wrap shell escaping
357  * remove polygon parameter from all API calls
358  * improve handling of postcode areas
359  * reorganise place linking algorithm, now using wikidata tag as well
360  * remove linkees from search_name and larger_area tables
361  * introduce country-specific address ranks
362  * reorganise rank address computation
363  * cleanup of partition function
364  * improve parenting for large POIs
365  * add support for Postgresql 12 and Postgis 3
366  * add earlier cleanup when --drop is given, to reduce memory usage
367  * remove use of place_id in URLs
368  * replace C nominatim indexer with a simpler Python implementation
369  * split up the huge sql/functions.sql file
370  * move osm2pgsql tests to osm2pgsql
371  * add new extratags style which imports all tags from OSM
372  * add new script for checking the import after completion
373  * update osm2pgsql, reducing memory usage
374  * use new wikipedia importance and add processing of wikidata tags
375  * add search form for details page
376  * use ExtraDataPath for country_grid table
377  * remove short_name from list of names to be displayed
378  * split up CMakeFile, so that all parts can be built separately
379  * update installation instructions for CentOS and Ubuntu
380  * add script for importing/updating multiple country extracts
381  * various documentation improvements
382
383 3.4.2
384
385  * fix security bug in /details endpoint where user input was not
386    properly sanitized
387
388 3.4.1
389
390  * update osm2pgsql to fix hans during updates and lost address numbers
391    during updates
392
393 3.4.0
394
395  * increase required version for PostgreSQL(9.3), PostGIS(2.2) and PHP(7.0)
396  * better error reporting for out-of-memory errors
397  * exclude postcode ranges separated by colon from centre point calculation
398  * update osm2pgsql, better handling of imports without flatnode file
399  * switch to more efficient algorithm for word set computation
400  * use only boundaries for country and state parts of addresses
401  * improve updates of addresses with housenumbers and interpolations
402  * remove country from place_addressline table and use country_code instead
403  * optimise indexes on search_name partition tables
404  * improve searching of attached streets for large objects like airports
405  * drop support for python 2
406  * new scripts for importing Wikidata for importance
407  * create and drop indexes concurrently to not clash with auto vacuum
408  * various documentation improvements
409
410
411 3.3.0
412
413  * zoom 17 in reverse now zooms in on minor streets
414  * fix use of postcode relations in address
415  * support for housenumber 0 on interpolations
416  * replace database abstraction DB with PDO and switch to using exceptions
417  * exclude line features at rank 30 from reverse geocoding
418  * remove self-reference and country from place_addressline
419  * make json output more readable (less escaping)
420  * update conversion scripts for postcodes
421  * scripts in utils/ are no longer executable (always use scripts in build dir)
422  * remove Natural Earth country fallback (OSM is complete enough)
423  * make rank assignments configurable
424  * allow accept languages with underscore
425  * new reverse-only import mode (without search index table)
426  * rely on boundaries only for states and countries
427  * update osm2pgsql, now using a configurable style
428  * provide multiple import styles
429  * improve search when house number and postcodes are dropped
430  * overhaul of setup code
431  * add support for PHPUnit 6
432  * update test database
433  * various documentation improvements
434
435 3.2.0
436
437  * complete rewrite of reverse search algorithm
438  * add new geojson and geocodejson output formats
439  * add simple export script to export addresses to CSV
440  * remove is_in terms from address computation
441  * remove unused search_name_country tables
442  * various smaller fixes to query parsing
443  * convert Tokens and token types to class types
444  * correctly handle update when boundary object type is changed
445  * improve debug output for /search endpoint
446  * update to latest osm2pgsql and leaflet.js
447  * overhaul of /details endpoint:
448      * new class parameter when using osmtype/osmid parameters
449      * permalink to instance-independent osmtype/osmid parameter format
450      * new json output format
451  * update CentOS vagrant machine to use SELinux
452  * add vagrant scripts for Ubuntu 18.04
453  * fix build process for BSD
454  * enable running the database on a different host than the setup scripts
455  * allow to configure use of custom PHP binaries (PHP_BIN)
456  * extensive coding style improvements to PHP code
457  * more PHP unit tests for new classes
458  * increase coverage for API tests
459  * add documentation for API
460
461 3.1.0
462
463  * rework postcode handling and introduce location_postcode table
464  * make setup less verbose and print a summary in the end
465  * setup: error out when web site user does not exist
466  * add more API tests to complete code coverage
467  * reinstate key-value amenity search (special term [key=value])
468  * fix detection of coordinates in query
469  * various smaller tweaks to ranking of search interpretations
470  * complete overhaul of PHP frontend code using OOP
471  * add address rank to details page
472  * update Tiger scripts for 2017 data and clean up unused code
473  * various bug fixes and improvements to UI
474  * improve reverse geocoding performance close to coasts
475  * more PHP style cleanup (quoting)
476  * allow unnamed road in reverse geocoding to avoid too far off results
477  * add function to recalculate counts for full-word search term
478  * add function to check if new updates are available
479  * update documentation and switch to mkdocs for generating HTML
480
481 3.0.1
482
483  * fix bug in geometry building algorithm in osm2pgsql
484  * fix typos in build instructions
485
486 3.0.0
487
488  * move to cmake build system
489  * various fixes to HTML output
490  * reverse endpoint now can return geometries
491  * add support for PHP7
492  * move to on-the-fly computation of interpolations
493  * improve handling of linked places (updating)
494  * improve test framework:
495     * replace lettuce with behave
496     * use smaller database for API tests
497  * drop support for postgres < 9.1, postgis < 2.0 and PHP < 5.4
498  * make external data use optional (useful for imports without US)
499  * detect postgres and postgis versions automatically
500  * clean up query logging and remove unused tables
501  * move installation documentation into this repo
502  * add self-documenting vagrant scripts
503  * remove --create-website, recommend to use website directory in build
504  * add accessor functions for URL parameters and improve error checking
505  * remove IP blocking and rate-limiting code
506  * enable CI via travis
507  * reformatting for more consistent coding style
508  * make country search term creation part of setup
509  * update country names and country grid
510  * handle roads that cross boundaries better
511  * keep full information on address tags
512  * update to refactored osm2pgsql which use libosmium based types
513  * switch from osmosis to pyosmium for updates
514  * be more strict when matching against special search terms
515  * handle postcode entries with multiple values correctly
516
517 2.5
518
519  * reverse geocoding includes looking up housenumbers from Tiger data
520  * added parameter to return simplified geometries
521  * new lookup call for getting address information for OSM objects
522  * new namedetails and extratags parameters that expose the name and extratags
523    fields of the placex table
524  * mobile website
525  * reverse web view
526
527 2.4
528
529  * drop support for postgres 8.4
530  * rewrite address interpolation
531  * switch to C++ version of osm2pgsql and rewrite tag filtering
532  * support for bridge:name and tunnel:name, man_made, junction
533  * drop way-node index (reduces database size by about 15%)
534  * add support for configuring tablespaces and webserver user
535  * better evaluation of search queries in right-to-left notation
536  * improve house number search for streets with many duplicate entries
537  * code cleanup (remove unused functions and tables)
538
539 2.3
540
541  * further improve ordering of results
542  * support for more lat/lon formats in search-as-reverse
543  * fix handling of GB postcodes
544  * new functional test suite
545  * support for waterway relations
546  * inherit postcodes from street to poi
547  * fix housenumber normalisation to find non-latin house numbers
548  * take viewbox into account for ordering of results
549  * pois may now inherit address tags from surrounding buildings
550  * improve what objects may participate in an address
551  * clean up handled class/type combinations to current OSM usage
552  * lots of bug fixes
553
554 2.2
555
556  * correct database rights for www-data
557  * add timestamps for update output
558  * load postgis via extension for postgis >= 2.0
559  * remove non-admin boundaries from addresses
560  * further improve ordering of results with same importance
561  * merge addr:postcode tags into object addresses
562  * include rank and importance in reverse geocode output
563  * replace ST_Line_Interpolate_Point with ST_LineInterpolatePoint
564   (for postgis >= 2.1)
565  * update osm2pgsql to latest version
566  * properly detect changes of admin_level
567  * remove landuses when name is removed
568  * smaller fixes
569
570 2.1
571
572  * update to openlayers 2.12 (now custom built)
573  * update fallback OSM boundaries
574  * add support for postgresql 9.2/9.3 and postgis 2.x
575  * add structured queries
576  * add options for polygon output in various formats
577    (geojson, svg, kml, postgis text)
578  * maintenance functions for deleting objects and updating regions
579    (plcae_force_update/place_force_delete)
580  * web view for polygons that need deleting
581  * rate limiting using memcache
582  * improve layout of details page
583  * add support for boundary:postal_code
584  * full CORS support
585  * improve parenting of POIs
586  * support for extract daily diffs from Geofabrik
587  * support for addresses without a street
588    (addr:place and conscription number house numbers)
589  * improve layout of word and search_name_* tables
590  * support for US ZIP+4 codes
591  * refactoring of front-end PHP code
592  * lots of smaller bug fixes
593
594 2.0.1
595
596  * delete outdated entries from location_area_country
597  * remove remaining uses of INTEGER, to allow node ids larger than 2^31