The following instructions are useful during development.
Note: This has been tested on Linux and Darwin/macOS. It has not been tested on Windows.
🤔 The following tasks need to be complete before proceeding. These are "one-time tasks" which may already have been completed.
-
Identify git repository.
export GIT_ACCOUNT=senzing-garage export GIT_REPOSITORY=go-observing export GIT_ACCOUNT_DIR=~/${GIT_ACCOUNT}.git export GIT_REPOSITORY_DIR="${GIT_ACCOUNT_DIR}/${GIT_REPOSITORY}"
-
Using the environment variables values just set, follow steps in clone-repository to install the Git repository.
-
A one-time command to install dependencies needed for
maketargets. Example:cd ${GIT_REPOSITORY_DIR} make dependencies-for-development
-
Install dependencies needed for Go code. Example:
cd ${GIT_REPOSITORY_DIR} make dependencies
-
Run linting. Example:
cd ${GIT_REPOSITORY_DIR} make lint
The following instructions were used to create a go module and other example generated source code.
-
Follow the Go Quick start tutorial to prepare an environment.
-
Generating client and server code. Example:
cd ${GIT_REPOSITORY_DIR} make generate
- In
${GIT_REPOSITORY_DIR}/observerpb, files with_grpc.in the filename contain the following:- Interface types (or stubs) for clients to call with the methods defined in the services.
- Interface types for servers to implement, also with the methods defined in the services.
- In other words, its the "gRPC" code that handles the network traffic, not the message content.
- In
${GIT_REPOSITORY_DIR}/observerpb, files without_grpc.in the filename contain the following:- protocol buffer code to populate, serialize, and retrieve request and response message types.
- In other words, it manages message content, not the network traffic.
- In
-
References:
-
Run tests. Example:
cd ${GIT_REPOSITORY_DIR} make clean setup test
Create a code coverage map.
-
Run Go tests. Example:
cd ${GIT_REPOSITORY_DIR} make clean setup coverage
A web-browser will show the results of the coverage. The goal is to have over 80% coverage. Anything less needs to be reflected in testcoverage.yaml.
-
View documentation. Example:
cd ${GIT_REPOSITORY_DIR} make clean documentation
-
If a web page doesn't appear, visit localhost:6060.
-
Senzing documentation will be in the "Third party" section.
github.com>senzing-garage>go-observing -
When a versioned release is published with a
v0.0.0format tag, the reference can be found by clicking on the following badge at the top of the README.md page. Example: -
To stop the
godocserver, runcd ${GIT_REPOSITORY_DIR} make clean