]> git.openstreetmap.org Git - nominatim.git/blobdiff - CONTRIBUTING.md
update instructions for Vagrant
[nominatim.git] / CONTRIBUTING.md
index 6d75ce57f1e3a7acf8f36569015d9a69ad8e4c03..b9bf2920e1c689cd29937b5c699c98ce3cc26f17 100644 (file)
@@ -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