Skip to content

SVM Repo Split: Core Tracking Issue #7317

@buffalojoec

Description

@buffalojoec

Lays out a formalized plan on top of anza-xyz/devops#96 to decouple dependencies within Agave in order to free up the SVM crates to be migrated to a new repository.

Related Agave pull requests will link here for tracking.

Crates to Migrate

solana-svm
├── Core SVM Components
│   ├── solana-svm-callback
│   ├── solana-svm-conformance
│   ├── solana-svm-feature-set
│   └── solana-svm-transaction
├── Program Loaders
│   ├── solana-bpf-loader-program
│   └── solana-loader-v4-program
├── Program Runtime
│   ├── solana-program-runtime
│   └── solana-transaction-context
└── Infrastructure
    ├── solana-log-collector
    ├── solana-timings
    └── solana-type-overrides

Infrastructure Crates to Fork

These 2 infrastructure crates will be forked with minimal, SVM-specific implementations.
These crates will be private/internal to the new SVM repo and will not be used by Agave.

... (continued from above)
└── Forked Infrastructure
    ├── svm-measure (fork of solana-measure)
    └── svm-metrics (fork of solana-metrics)

SVM Examples Removal

There's really no need to keep the examples in svm/examples around anymore.

Dev-Dependencies Removal

The SVM tests currently depend on Agave-specific crates that need to be replaced
with mock implementations.

  • agave-reserved-account-keys
  • agave-feature-set
  • agave-syscalls

After these steps, the listed SVM crates can be successfully extracted into a new repository.

  • Delete svm/examples
  • Rename solana-log-collector to solana-svm-log-collector
  • Rename solana-timings to solana-svm-timings
  • Rename solana-type-overrides to solana-svm-type-overrides
  • Create fork solana-svm-measure
  • Create fork solana-svm-metrics
  • Dev-dependencies: remove agave-reserved-account-keys
  • Dev-dependencies: remove agave-feature-set
  • Dev-dependencies: remove agave-syscalls

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