Skip to main content

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:

  1. Install the Buf CLI.

  2. 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 link to create a symlink to the local package.
  • In your project, run npm link @use-tusk/drift-schemas to use the local package.
  • After updating the schemas, run npm run build to rebuild the package.
  • Run npm unlink @use-tusk/drift-schemas to 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:

  1. Run preflight checks (on main, up to date, no uncommitted changes)
  2. Run generate and build to verify everything works
  3. Update version in both package.json and pyproject.toml
  4. Commit, tag, and push to GitHub
  5. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tusk_drift_schemas-0.1.29.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tusk_drift_schemas-0.1.29-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file tusk_drift_schemas-0.1.29.tar.gz.

File metadata

  • Download URL: tusk_drift_schemas-0.1.29.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for tusk_drift_schemas-0.1.29.tar.gz
Algorithm Hash digest
SHA256 31be6e850bdb9fbebdb8008f3601a3ea828cef58d9047cf9fd387b8c1b869d83
MD5 a1869c39b6da324c1521dc8648afa387
BLAKE2b-256 56895219e3ed2df0172bd23f702de0f91b1e2cd4f04b24822399729e0dabc63c

See more details on using hashes here.

Provenance

The following attestation bundles were made for tusk_drift_schemas-0.1.29.tar.gz:

Publisher: publish-pypi.yml on Use-Tusk/tusk-drift-schemas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tusk_drift_schemas-0.1.29-py3-none-any.whl.

File metadata

File hashes

Hashes for tusk_drift_schemas-0.1.29-py3-none-any.whl
Algorithm Hash digest
SHA256 1cbb2523ab6049e1d7f3b26dc3b3d6d46f010f735c9475c6ac17c41e53f776e6
MD5 095a81c80a6ada6c8e4918cdd9efed83
BLAKE2b-256 7d7aa2b57c84a8fd3ca8cdfa29f0518316885d62a1c13756f8cbabea4545654e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tusk_drift_schemas-0.1.29-py3-none-any.whl:

Publisher: publish-pypi.yml on Use-Tusk/tusk-drift-schemas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page