Skip to content

chore: Stop Polluting Protocol Repo with Build Artifacts #89

Description

@matteoettam09

Problem

Currently, the protocol repository contains build artifacts and bytecode that are pushed directly to Git.
These artifacts are later cloned and consumed by the SDKs (Python and TypeScript) during their build process.

This approach:

  • Pollutes the protocol repo’s Git history with large, unnecessary files.
  • Makes the repo heavier and harder to maintain.
  • Creates a messy dependency chain between the protocol and SDKs.
  • Couples SDK releases too tightly with protocol commits.

Proposal

We should stop committing build artifacts and bytecode to the protocol repo.
Instead, each SDK should build the protocol within its own build/release process and bundle the necessary artifacts and ABIs internally.

Implementation Plan

  1. Add artifacts and bytecode directories to .gitignore in the protocol repo.
  2. Update the SDK build pipelines:
    • Python SDK: build the protocol artifacts during the PyPI release process.
    • TypeScript SDK: similarly, build and bundle artifacts within the npm package release.
  3. Remove artifact fetching logic from the SDK build scripts that clone or pull from the protocol repo.
  4. Ensure both SDKs package the ABIs and artifacts they need directly in their release bundles.

Benefits

  • Clean, compact Git history in the protocol repo.
  • Reduced repo size and faster clone times.
  • Simplified build and release workflows.
  • Better separation of concerns between protocol and SDKs.

Example

  • Current: SDK clones protocol repo → fetches artifacts → bundles → releases
  • Proposed: SDK builds protocol artifacts during release → bundles → releases (no dependency on repo artifacts)

Action Items

  • Add .gitignore rules for build artifacts
  • Clean existing artifacts from the protocol repo history (optional, via BFG or filter-branch)
  • Update SDK build scripts (Python + TypeScript)
  • Verify packaging includes necessary ABIs and bytecode

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions