GIScience / GIScience/openpoiservice

temp: collect observations

Open
#76 2 comments 0 reactions 2 assignees Claimed by @nilsnolde View on GitHub
infrastructure
Dominant language
Python
Stars
199
Forks
25
PR merge metrics
No merged PRs in 30d

Description

Let's create separate issues from this list once we discussed them a little bit @zephylac. If you'd like to be involved too, we can see which ones who tackles:

- [x] support newest Python versions 3.7 & 3.8. Problem I could figure out so far: `gunicorn` needs to be updated to `>=19.9.0`, maybe `,<20.0.0`, as there's been [conflicts](https://github.com/benoitc/gunicorn/issues/1823) from 3.7 on (#79)
- [x] move away from `imposm` since deprecated since a long while (#80)
- [x] Update project to work on newest packages, most notably `Flask>=1.0`, which also means `Werkzeug>=1.0` (#81)
- `Dockerfile` and template docker-compose.yml can be improved:
- [x] Use a Python base image
- [x] has a lot of unnecessary RUN statements making the final image huge
- [x] Use configs and OSM file as build ARG and keep exposing via volumes, so that we could host the image on dockerhub/other registry, see [ORS docker](https://github.com/GIScience/openrouteservice/tree/development/docker) as example (#82)
- [x] take `tests` out of the main package: can have very undesirable side effects otherwise as the root `__init__.py` is executed when running the tests (#83)
- [x] more proper error codes: right now all is 500, even when most are user input errors, i.e. rather the 4xx family (#84)
- [ ] add test for MulitPolygon API request
- [x] make README more readable in terms of structure etc
- [ ] `area` checks to determine if the request exceeds the server limits are done in `EPSG:3857`, which should ideally be a global equal-area projection like Mollweide
- [ ] the response type had a breaking change when you introduced `MultiPolygon`: now they're all lists of GeoJSON `FeatureCollection` where I don't really understand the point of. It's all the same `geometry.type`, so a list of `FeatureCollection` is pretty much an anti-pattern. Why not wrap all features for all polygons (if MultiPolygon) in a single FeatureCollection? If you really need to relate the polygons of a MultiPolygon to the index in the response list (only reason I can think of) then doing a multipart to singlepart conversion and requesting with single Polygons makes more sense to me. Can we please revert that again?
- [ ] ~~remove all user-settable files from git and provide maintained template versions of them: so we don't accidentally commit our passwords and stuff~~
- [ ] ~~slight changes to make the project more accessible: move `ops_settings.yml` to the root of the main package, remove `server` folder (redundant when tests are moved)~~

Optional:
- [x] use a proper dependency manager: I'm in love with [Poetry](https://github.com/python-poetry/poetry). Super easy to use and million times better than any other.
- [x] Try to incorporate `tox` to test multiple Python versions easily
- [ ] Introduce linter, e.g. `yapf`
- [x] improve testing framework: right now, every single test will create dbs, import data and drop dbs (#96)
- [ ] lots of data duplication in the request handlers in `views.py`, which could be avoided, as that's a potential performance drain

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.