view docs/DEVELOPMENT.md @ 5560:f2204f91d286

Join the log lines of imports to the log exports to recover data from them. Used in SR export to extract information that where in the meta json but now are only found in the log.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 09 Feb 2022 18:34:40 +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.