view docs/DEVELOPMENT.md @ 5590:826e67e959c9 surveysperbottleneckid

For BN Overview display id for all doubles
author Thomas Junk <thomas.junk@intevation.de>
date Tue, 05 Apr 2022 13:02:13 +0200
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.