X-Git-Url: https://git.openstreetmap.org./nominatim-ui.git/blobdiff_plain/c9687b102bb6f544a034dc4d508bf0ae4a5fc221..83da10bbcbbc415c0ae71769249d06c160a54560:/CONTRIBUTE.md diff --git a/CONTRIBUTE.md b/CONTRIBUTE.md index 0f7abc1..bef0e99 100644 --- a/CONTRIBUTE.md +++ b/CONTRIBUTE.md @@ -1,14 +1,18 @@ # Developing Nominatim-UI +[![Continuous Integration](https://github.com/osm-search/nominatim-ui/actions/workflows/ci.yml/badge.svg)](https://github.com/osm-search/nominatim-ui/actions/workflows/ci.yml) + ## Background +Uses [Svelte](https://svelte.dev/) framework, +[Leaflet](https://leafletjs.com/) for map interaction, +[Bootstrap](https://getbootstrap.com/) for layout styling. + The user interface used to be included in the geocoder. Thus the -first version avoid being a redesign and still uses some of the -same configuration values. +first version avoided being a redesign and still uses some of the +same configuration values. Version 2 was a full refactor using +Svelte. Version 3 added theme and easier configuration. -Uses [svelte](https://svelte.dev/) framework, -[leaflet](https://leafletjs.com/) for map interaction, -[bootstrap](https://getbootstrap.com/) for layout styling. ## Building the frontend @@ -24,18 +28,49 @@ Uses [svelte](https://svelte.dev/) framework, ``` yarn dev ``` - which will start a webserver on port 5000 and auto-reloads - whenever you edit files. + which will start a webserver on port 9080 and auto-reloads + whenever you edit files. Configuration in `rollup.config.js`. + +## Testing + +The `test/` setup uses [Mocha](https://mochajs.org/) to run tests. Tests use [Puppeteer](https://pptr.dev/) to control a Google Chrome headless browser and evaluate with [Assert](https://nodejs.org/api/assert.html). + + +* Run integration test suite (configuration in `.mocharc.json`) + + ``` + yarn test + API_ON_SAME_PORT=1 yarn test + ``` + + Setting API_ON_SAME_PORT simulates having both the API and UI on the same server + port. That's a rare setup but something https://nominatim.openstreetmap.org/ does + so worth testing. + + To run a single test file only + + ``` + yarn run rollup -c && yarn run mocha test/details.js + ``` + +* Run syntax linter (configuration in `.eslint.json`) + + ``` + yarn lint + ``` ## Prepare a release -1. Update version number in `package.json` file +1. Create build (dist/bundle/ files): `yarn build` + +2. Update version number in `package.json` file -2. Update `CHANGES.md` file +3. Update `CHANGES.md` file -3. Commit your changes: `git add... `, `git commit ...`, `git push ...` etc +4. Commit your changes: `git add ... `, `git commit ...`, `git push ...` etc -4. Tag release: `git tag THE_VERSION_NUMBER`, `git push --tags` +5. Tag release: `git tag THE_VERSION_NUMBER`, `git push --tags` -5. Upload release \ No newline at end of file +6. Create release on https://github.com/osm-search/nominatim-ui/releases + This (a triggered Github Action) will run `yarn build` and add the `dist/build/bundle.*` files.