Installation
Method 1 Package (Recommended)
If you're only interested in utilizing the existing proto definitions and not making changes to the datamodel, packages are readily available to support development in both C# and Python.
Python Usage
Install via Pip
pip install ares-datamodel
C# Usage
ARES-Datamodel can be installed in your C# project using the Nuget package manager. Simply navigate to your nuget package manager in your project and with your source set to nuget.org, search for ARES-Datamodel. Details for this package can be found at the nuget repo
Method 2 Manual (For Developers)
Those looking to make changes to the datamodel will have to generate their own language specific protobuf messages for testing. This can be done using the setup and generation steps below.
Dependencies
- Protobuf Compiler (
protoc) - .NET SDK
- (Optional) gRPC C# Plugin
- (Optional) Python 3.8+ if using Python bindings
Confirm installations with:
protoc --version
dotnet --version
Building or Regenerating Library Code
When .proto definitions are updated, you can regenerate the corresponding language specific proto files.
Generating C# Library
New C# specific proto files can be generated using the dotnet pack command. Ensure your active directory is the dotnet directory, and run the following command:
dotnet pack -c Release --output ./nupkg /p:Version=x.x.x
This outputs a local nuget package that can be used for testing changes.
Generating Python Iibrary
Python specific proto files can be generated by running a python build command.
Preferrably, you can install an editable version of the library using pip's -e argument.
- It's important that you set/create an envionrment variable named "ARES_DM_PACKAGE_VERSION" and give it a value, so that the toml file will work corectly.
pip install -e \path\to\ares-datamodel\python
Alternatively, you can build manually.
- Ensure your active directory is the python directory.
- run the following command:
python -m build
This outputs two files, a .tar.gz file and a .whl file. Either of these can be used to install your package from the locally generated copy using pip
pip install .\dist\ares_datamodel-0.10.0b2.tar.gz
Versioning & Releases
This project follows Semantic Versioning (SemVer), with tags like v0.13.2-beta.1.
Each release represents a stable snapshot of the Protobuf definitions and generated artifacts. Consumers should reference a specific release tag to ensure schema compatibility.
| Change Type | Example | Impact |
|---|---|---|
| Patch | v1.0.1 → v1.0.2 | Minor, non-breaking fixes |
| Minor | v1.0.0 → v1.1.0 | Additive, backward-compatible changes |
| Major | v1.0.0 → v2.0.0 | Breaking schema or service changes |