X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/9a5f75dba759a3e52e013ef8c5db433cf4ef1b8f..84bac1bb4df234d0c25d94fb1abbf9289d2d55c1:/CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8baadb28..b9bf2920 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,6 +30,19 @@ feature pull requests. If you plan to make larger changes, please open an issue first or comment on the appropriate issue already existing so that duplicate work can be avoided. +### Using AI-assisted code generators + +PRs that include AI-generated content, may that be in code, in the PR +description or in documentation need to + +1. clearly mark the AI-generated sections as such, for example, by + mentioning all use of AI in the PR description, and +2. include proof that you have run the generated code on an actual + installation of Nominatim. Adding and excuting tests will not be + sufficient. You need to show that the code actually solves the problem + the PR claims to solve. + + ## Coding style Nominatim historically hasn't followed a particular coding style but we @@ -46,14 +59,11 @@ are in process of consolidating the style. The following rules apply: * no spaces after opening and before closing bracket * leave out space between a function name and bracket but add one between control statement(if, while, etc.) and bracket - * 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 pylint. It can be tested with: +The coding style is enforced with flake8. It can be tested with: ``` -phpcs --report-width=120 --colors . -pylint3 --extension-pkg-whitelist=osmium nominatim +make lint ``` ## Testing @@ -61,32 +71,35 @@ pylint3 --extension-pkg-whitelist=osmium nominatim Before submitting a pull request make sure that the tests pass: ``` - cd build - make test + make tests ``` ## 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 exisiting databases. Patch releases +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 +* [ ] increase versions in + * `src/nominatim_api/version.py` + * `src/nominatim_db/version.py` + * 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 +* [ ] update OSMF production repo and release new version -post1 there * [ ] 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*` + * `git clone https://github.com/osm-search/Nominatim` (switch to right branch!) + * `rm -r .git*` * copy country data into `data/` * add version to base directory and package * [ ] upload tarball to https://nominatim.org @@ -100,3 +113,4 @@ Checklist for releases: * compile and import Nominatim * run `nominatim --version` to confirm correct version * [ ] tag new release and add a release on github.com +* [ ] build pip packages and upload to pypi