Protocol Buffer schemas for Tusk Drift
Project description
Tusk Drift Schemas
This repo holds schemas defined as protobuf files used by Tusk Drift. We use Buf to generate code for each language we support (currently TypeScript, Golang, and Python).
Prerequisites
Before generating schemas, install the following:
-
Install the Buf CLI.
-
Python
betterproto(for Python code generation):pip install "betterproto[compiler]>=2.0.0b7" # Or using the requirements file: pip install -r requirements.txt
Generating Schemas
After modifying .proto files, regenerate the code:
npm run generate
[!NOTE] You may see "duplicate generated file name" warnings from betterproto. These are harmless and can be ignored — they occur because multiple proto packages share the same Python namespace (
tusk.drift).
Then build the TypeScript package:
npm run build
Usage
Installing schemas in TypeScript projects
npm install @use-tusk/drift-schemas
Developing locally:
- In this repo, run
npm linkto create a symlink to the local package. - In your project, run
npm link @use-tusk/drift-schemasto use the local package. - After updating the schemas, run
npm run buildto rebuild the package. - Run
npm unlink @use-tusk/drift-schemasto remove the local package.
Installing schemas in Golang projects
go get github.com/Use-Tusk/tusk-drift-schemas
When developing locally, add this to go.mod in your project:
replace github.com/Use-Tusk/tusk-drift-schemas => ../tusk-drift-schemas
Run go mod tidy to update the dependencies.
Remember to remove this before pushing.
Installing schemas in Python projects
pip install tusk-drift-schemas
Then you can import as
# Core schemas
from tusk.drift.core.v1 import *
# Backend schemas
from tusk.drift.backend.v1 import *
Releasing
Use the release script to create a new release:
# Patch release (0.1.22 → 0.1.23)
./scripts/release.sh
# Minor release (0.1.22 → 0.2.0)
./scripts/release.sh minor
The script will:
- Run preflight checks (on main, up to date, no uncommitted changes)
- Run
generateandbuildto verify everything works - Update version in both
package.jsonandpyproject.toml - Commit, tag, and push to GitHub
- Create a GitHub Release (which triggers the NPM & PyPI publish workflows)
[!NOTE] If a broken release occurs, or you just want to test some stuff, you can supply an optional version override to the GH actions manually, like
0.1.23.dev1.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tusk_drift_schemas-0.1.27.tar.gz.
File metadata
- Download URL: tusk_drift_schemas-0.1.27.tar.gz
- Upload date:
- Size: 14.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5879b1566b104d0e5031308fd3ccb7d3097bb4254ff3a7c65f0d1b94536eb95
|
|
| MD5 |
bf1e605592dddc47f4ba2fb1bcefa03a
|
|
| BLAKE2b-256 |
d94d303de9142b672cbab98b3ca5978581dc02a9a79749148e8d0cc9b012bd9d
|
Provenance
The following attestation bundles were made for tusk_drift_schemas-0.1.27.tar.gz:
Publisher:
publish-pypi.yml on Use-Tusk/tusk-drift-schemas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tusk_drift_schemas-0.1.27.tar.gz -
Subject digest:
a5879b1566b104d0e5031308fd3ccb7d3097bb4254ff3a7c65f0d1b94536eb95 - Sigstore transparency entry: 869238308
- Sigstore integration time:
-
Permalink:
Use-Tusk/tusk-drift-schemas@dfb2832c792809ed69a956472fc1874ad48a8bc7 -
Branch / Tag:
refs/tags/v0.1.27 - Owner: https://github.com/Use-Tusk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@dfb2832c792809ed69a956472fc1874ad48a8bc7 -
Trigger Event:
release
-
Statement type:
File details
Details for the file tusk_drift_schemas-0.1.27-py3-none-any.whl.
File metadata
- Download URL: tusk_drift_schemas-0.1.27-py3-none-any.whl
- Upload date:
- Size: 14.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13661a47bb61b0c36db7781e6e99259ea5a5257ffcc396af8a8d5611a7a0e112
|
|
| MD5 |
f10d60bb9b1e537fff27c8798cb92467
|
|
| BLAKE2b-256 |
8c35d1d6eac96ca7f0b00d36972676ba41fd3898c64b62b63bfca022f22296b3
|
Provenance
The following attestation bundles were made for tusk_drift_schemas-0.1.27-py3-none-any.whl:
Publisher:
publish-pypi.yml on Use-Tusk/tusk-drift-schemas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tusk_drift_schemas-0.1.27-py3-none-any.whl -
Subject digest:
13661a47bb61b0c36db7781e6e99259ea5a5257ffcc396af8a8d5611a7a0e112 - Sigstore transparency entry: 869238310
- Sigstore integration time:
-
Permalink:
Use-Tusk/tusk-drift-schemas@dfb2832c792809ed69a956472fc1874ad48a8bc7 -
Branch / Tag:
refs/tags/v0.1.27 - Owner: https://github.com/Use-Tusk
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@dfb2832c792809ed69a956472fc1874ad48a8bc7 -
Trigger Event:
release
-
Statement type: