This repository is part of the 'Nieuwe Warmte Nu Design Toolkit' project.
Orchestrator component of OMOTES project which monitors workflows and starts the various steps of each workflow.
Please install protoc
on your machine and make sure it is available in your PATH
.
Version 25.2 is used: https://github.com/protocolbuffers/protobuf/releases.
The protobuf definition is under src/
and any language specific generated code resides under the language
folder. For instance, the Python implementation resides under python/
. The same holds for any packaging
and build tools, they reside under the language folder as well. The tools for generating the language-specific
code us under root /
.
To generate new language-specific implementations of the protocol:
- Alter the protobuf defintions under
src/
. - Run
ci/linux/create_venv.sh
andci/linux/install_dependencies.sh
to create a Python environment in whichprotoc
plugins are installed. - Run
ci/linux/gen_protocol.sh
to generate the language-specific implementations.
A number of tools are available to create the Python package:
./python/ci/linux/create_venv.sh
: Creates a virtualenvironment specific to the Python implementation of the generated protobuf messages under./python/.venv/
../python/ci/linux/install_dependencies.sh
: Installs the build and package dependencies in./python/.venv/
../python/ci/linux/update_dependencies.sh
: Updates the build and package dependencies../python/ci/linux/build_python_package.sh
: Generates the python package containing the python generated protobuf messages.
To build the TypeScript artifacts, navigate to ./typescript
and run npm run build
. Versioning is done automatically
through the corresponding GitHub action (see node_release.yml).
Releases are generated by creating and publishing a release on Github. This ensures that release notes are generated as well and that a tag exists with the accompanying release.
Steps to release:
- Draft a new release here
- Create a new tag by typing the version number in 'Choose a tag'
- Select the previous tag (previous auto tag isn't always correct)
- Click 'Generate release notes'
- Check if the release notes make sense.
- Check if 'Set as latest release' should be enabled.
- Click 'Publish Release' at the bottom of the page.