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