view docs/DEVELOPMENT.md @ 5011:2d7af72bb7ac

Fix geometry type wrapping Do not prevent wrapping as soon as the type requested by the consumer can be serialized. If the type of the geometry in the imported feature can be serialized and is the requested type, take it as is. If it's not the requested type, check if it can be wrapped in the requested type.
author Tom Gottfried <tom@intevation.de>
date Wed, 11 Mar 2020 19:29:07 +0100
parents 70444dce0b31
children
line wrap: on
line source

# Development

Main development is done on GNU/Linux systems, mainly Debian (stretch)
or Ubuntu (18.04 LTS "Bionic Beaver"). First try packages from these
distributions.

`Makefile` requires GNU Make for building. And `.sh` files refer to Bash.
(Both are standard in GNU/Linux setups.)


# View source code history

If you want to see the source code structure and history
on our local machine (instead of online):
  `hg serve`
from Mercurial SCM will start a local server. Install the
[HighlightExtension](https://www.mercurial-scm.org/wiki/HighlightExtension)
to enable syntax highlighting.


## Backend

You need a working [Go](https://golang.org/dl) build environment (1.13+).

* Install dependencies

    `sh 3rdpartylibs`

* Build

    Prerequesite: compile server
    ```
    cd cmd/gemma/
    go build
    cd ../../
    ```

* Run
    Run server with  `./cmd/gemma/gemma`


### View source code documentation interactively

Use https://godoc.org/golang.org/x/tools/cmd/godoc
(coming with package `golang-golang-x-tools` on Ubuntu.)
to see the formatted documentation.

Started in the top level directory like
 `godoc  -http=:6060`
you can access the documentation at
`http://localhost:6060/pkg/gemma.intevation.de/?m=all`

Hints:
 * A parameter like `-goroot /usr/lib/go-1.13` may avoid warnings, if
   the goroot is somewhere else.
 * Clicking on a function declaration header will take you to the source
   code. (Or changing `?m=all` to `?m=src?`).


## Client

See [client/README](../client/README.md) for details.