Development Setup
Prerequisites:
- IntelliJ (other IDE's will work, but not pre-configured)
- Protobuf support in your IDE
- Maven
If your protobuf plugin is not configured as below, you will see errors in the IDE. Make sure the proto dir is included.
To build java:
cd java
mvn package
To build and package python:
cd python
python3 build.py --package
Protolock
This repository uses protolock to ensure there are no breaking changes between releases.
The proto.lock file can be found at proto/zepben/proto.lock
. This file will be automatically kept up to date by the build pipeline - PR's should not update this file.
For testing, the protolock binary can be retrieved from https://github.com/nilslice/protolock/releases/. Download, extract, and add it to your PATH
.
Prior to merging, protolock is run automatically by the build pipeline, and will ensure no breaking changes have been made. You can test this prior to committing by running:
cd proto/zepben
protolock status
Breaking changes
If you need to merge breaking changes your patch must:
-
Update the major version to the next release for each library
-
Force update the
proto.lock
file prior to committing.cd proto/zepben protolock commit --force git add proto.lock
-
Commit
proto.lock
changes with version updates.