development hints and notes for lib-bpmn-engine
===============================================

### update Zeebe exporter protobuf

1. get new source file from https://github.com/camunda-community-hub/zeebe-exporter-protobuf/tree/master/src/main/proto
2. ensure you have latest ```protoc``` in your path installed
3. switch to folder pkg/bpmn_engine/exporter/zeebe
4. run ```protoc --go_opt=paths=source_relative --go_out=. --go_opt=Mschema.proto=zeebe/ schema.proto```

### update documentation

The documentation on Github pages is build via [MkDocs](https://www.mkdocs.org/).

#### local building and testing documentation 

1. ensure you have a Python 3.8+ environment installed
2. install MkDocs, according to their https://www.mkdocs.org/user-guide/installation/
    * shortcut: ```pip3 install -r doc-requirements.txt```
3. within this source repo, run ```mkdocs build``` to get a version of the HTML files

Alternatively, you could use a local test-server,
which eases the manual validation/verification of documentation updates. 

```shell
mkdocs serve
```

#### automated Github Pages update

There's a Github Action [update-gh-pages.yaml](./.github/workflows/update-gh-pages.yml),
which automatically will update the pages on every push to the main branch

### linting

From time to time, do some linting (would be better automatically checked via Github actions)
Using [go-critic](https://github.com/go-critic/go-critic)

```shell
gocritic check ./... 
```