X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/34f8e6ddf76f511fe2a58a8e09a27b88e9f68dd1..c24dc56c65456cda52da04f7d87af93d7b7a7acf:/CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2d2877bf..1df644e7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -36,7 +36,7 @@ Nominatim historically hasn't followed a particular coding style but we are in process of consolidating the style. The following rules apply: * Python code uses the official Python style - * indention + * indentation * SQL use 2 spaces * all other file types use 4 spaces * [BSD style](https://en.wikipedia.org/wiki/Indent_style#Allman_style) for braces @@ -49,22 +49,54 @@ are in process of consolidating the style. The following rules apply: * for PHP variables use CamelCase with a prefixing letter indicating the type (i - integer, f - float, a - array, s - string, o - object) -The coding style is enforced with PHPCS and can be tested with: +The coding style is enforced with PHPCS and pylint. It can be tested with: ``` - phpcs --report-width=120 --colors . +phpcs --report-width=120 --colors . +pylint3 --extension-pkg-whitelist=osmium nominatim ``` ## Testing -Before submitting a pull request make sure that the following tests pass: +Before submitting a pull request make sure that the tests pass: ``` - cd test/bdd - behave -DBUILDDIR= db osm2pgsql + cd build + make test ``` -``` - cd test/php - phpunit ./ -``` +## Releases + +Nominatim follows semantic versioning. Major releases are done for large changes +that require (or at least strongly recommend) a reimport of the databases. +Minor releases can usually be applied to existing databases. Patch releases +contain bug fixes only and are released from a separate branch where the +relevant changes are cherry-picked from the master branch. + +Checklist for releases: + +* [ ] increase version in `nominatim/version.py` and CMakeLists.txt +* [ ] update `ChangeLog` (copy information from patch releases from release branch) +* [ ] complete `docs/admin/Migration.md` +* [ ] update EOL dates in `SECURITY.md` +* [ ] commit and make sure CI tests pass +* [ ] test migration + * download, build and import previous version + * migrate using master version + * run updates using master version +* [ ] prepare tarball: + * `git clone --recursive https://github.com/osm-search/Nominatim` (switch to right branch!) + * `rm -r .git* osm2pgsql/.git*` + * copy country data into `data/` + * add version to base directory and package +* [ ] upload tarball to https://nominatim.org +* [ ] prepare documentation + * check out new docs branch + * change git checkout instructions to tarball download instructions or adapt version on existing ones + * build documentation and copy to https://github.com/osm-search/nominatim-org-site + * add new version to history +* [ ] check release tarball + * download tarball as per new documentation instructions + * compile and import Nominatim + * run `nominatim --version` to confirm correct version +* [ ] tag new release and add a release on github.com