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
- Add artifacts and bytecode directories to
.gitignore in the protocol repo.
- 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.
- Remove artifact fetching logic from the SDK build scripts that clone or pull from the protocol repo.
- 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
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:
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
.gitignorein the protocol repo.Benefits
Example
Action Items
.gitignorerules for build artifacts