Skip to content

Commit 2bc34c3

Browse files
authored
Merge pull request #7235 from elizaOS/monorepo
chore: add cloud and plugins, remove rust and python
2 parents 6e43681 + 65bf105 commit 2bc34c3

7,748 files changed

Lines changed: 1307096 additions & 248884 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.biomeignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
**/.venv/**
77
**/coverage/**
88
**/scripts/async-optimizer.js
9-
**/packages/python/**
109
.turbo
1110
.turbo/**
1211
**/.turbo

.github/dependabot.yml

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,6 @@ updates:
1616
schedule:
1717
interval: "weekly"
1818

19-
# Python — main package
20-
- package-ecosystem: "pip"
21-
directory: "/packages/python"
22-
schedule:
23-
interval: "weekly"
24-
open-pull-requests-limit: 3
25-
2619
# Python benchmarks (kept on weekly cadence; demo / research code)
2720
- package-ecosystem: "pip"
2821
directory: "/packages/benchmarks/OSWorld"

.github/workflows/README.md

Lines changed: 5 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,10 @@ This directory contains GitHub Actions workflows for the elizaOS project (v2.0.0
99
| `ci.yaml` | Push/PR to main | Main CI - tests, lint, build |
1010
| `pr.yaml` | PR opened/edited | PR title validation |
1111
| `release.yaml` | Push to develop/main, Release | NPM package releases |
12-
| `release-python.yaml` | Release, Manual | PyPI package releases |
13-
| `release-rust.yaml` | Release, Manual | Crates.io releases |
1412
| `claude.yml` | @claude mentions | Interactive Claude assistance |
1513
| `claude-code-review.yml` | PR opened | Automated code review |
1614
| `claude-security-review.yml` | PR opened | Security-focused review |
1715
| `codeql.yml` | Push/PR to main, Weekly | Static security analysis |
18-
| `multi-lang-tests.yaml` | Push/PR (Rust/Python paths) | Rust, Python, WASM tests |
1916
| `docs-ci.yml` | PR (docs paths), Manual | Documentation quality checks |
2017
| `image.yaml` | Release, Manual | Docker image builds |
2118
| `tee-build-deploy.yml` | Push to main, Manual | TEE deployment to Phala Cloud |
@@ -36,40 +33,6 @@ Publishes TypeScript/JavaScript packages to NPM.
3633

3734
**Packages:** All `@elizaos/*` packages in the monorepo
3835

39-
### Python Packages (`release-python.yaml`)
40-
41-
Publishes Python packages to PyPI.
42-
43-
**Triggers:**
44-
45-
- GitHub Release created
46-
- Manual dispatch
47-
48-
**Packages:**
49-
50-
- `elizaos` (packages/python) - Core runtime and types
51-
- `elizaos-plugin-sql` (packages/plugin-sql/python) - SQL database adapters
52-
- Additional plugins as configured
53-
54-
**Required Secrets:** `PYPI_TOKEN`
55-
56-
### Rust Crates (`release-rust.yaml`)
57-
58-
Publishes Rust crates to crates.io.
59-
60-
**Triggers:**
61-
62-
- GitHub Release created
63-
- Manual dispatch
64-
65-
**Crates:**
66-
67-
- `elizaos` (packages/rust) - Core runtime and types
68-
- `elizaos-plugin-sql` (packages/plugin-sql/rust) - SQL database adapters
69-
- Additional plugins as configured
70-
71-
**Required Secrets:** `CRATES_IO_TOKEN`
72-
7336
## Test Workflows
7437

7538
### Main CI (`ci.yaml`)
@@ -79,16 +42,7 @@ Runs on PRs and pushes to main:
7942
- TypeScript tests with coverage
8043
- Linting and formatting checks
8144
- Build verification
82-
83-
### Multi-Language Tests (`multi-lang-tests.yaml`)
84-
85-
Tests Rust and Python packages:
86-
87-
- **Rust:** formatting, clippy, tests, release build
88-
- **Python:** ruff linting, pytest
89-
- **WASM:** build verification
90-
- **Interop:** cross-language integration tests
91-
- **SQL Plugin:** PostgreSQL integration tests
45+
- Interop TypeScript tests (`packages/interop`)
9246

9347
## Code Review Workflows
9448

@@ -138,26 +92,10 @@ Manual workflow for generating JSDoc documentation.
13892
The release will trigger:
13993

14094
- `release.yaml` → NPM packages
141-
- `release-python.yaml` → PyPI packages
142-
- `release-rust.yaml` → crates.io crates
14395

144-
### 3. Manual Publishing (if needed)
96+
### 3. Manual publishing
14597

146-
**Python:**
147-
148-
```bash
149-
cd packages/python
150-
pip install build twine
151-
python -m build
152-
twine upload dist/*
153-
```
154-
155-
**Rust:**
156-
157-
```bash
158-
cd packages/rust
159-
cargo publish
160-
```
98+
Use `bunx lerna publish` from the repo root when automation is not sufficient (see `release.yaml`).
16199

162100
## Setting Up Secrets
163101

@@ -166,8 +104,6 @@ cargo publish
166104
| Secret | Purpose | How to Get |
167105
|--------|---------|------------|
168106
| `NPM_TOKEN` | NPM publishing | [npmjs.com/settings/~/tokens](https://www.npmjs.com/settings/~/tokens) |
169-
| `PYPI_TOKEN` | PyPI publishing | [pypi.org/manage/account/token/](https://pypi.org/manage/account/token/) |
170-
| `CRATES_IO_TOKEN` | crates.io publishing | [crates.io/settings/tokens](https://crates.io/settings/tokens) |
171107
| `ANTHROPIC_API_KEY` | Claude workflows | [console.anthropic.com](https://console.anthropic.com) |
172108
| `OPENAI_API_KEY` | Tests requiring OpenAI | [platform.openai.com](https://platform.openai.com) |
173109

@@ -179,21 +115,9 @@ cargo publish
179115
| `PHALA_CLOUD_API_KEY` | TEE deployment |
180116
| `GH_PAT` | Cross-repo operations |
181117

182-
## Package Dependencies
183-
184-
When releasing, packages are published in this order:
185-
186-
1. **Core packages first:**
187-
- `elizaos` (Python)
188-
- `elizaos` (Rust)
189-
- `@elizaos/core` (NPM)
190-
191-
2. **Then dependent packages:**
192-
- `elizaos-plugin-*` (Python, depends on elizaos)
193-
- `elizaos-plugin-*` (Rust, depends on elizaos)
194-
- `@elizaos/plugin-*` (NPM, depends on @elizaos/core)
118+
## Package dependencies
195119

196-
The workflows handle this ordering automatically.
120+
NPM packages are ordered by the monorepo graph; `release.yaml` / Lerna handle publish ordering for `@elizaos/*` packages.
197121

198122
## Troubleshooting
199123

@@ -208,7 +132,6 @@ The workflows handle this ordering automatically.
208132
1. Verify secrets are configured
209133
2. Check workflow logs for specific errors
210134
3. For NPM: ensure package versions are unique
211-
4. For crates.io: wait for index propagation (2 min delay built-in)
212135

213136
### Claude Workflow Issues
214137

.github/workflows/ci.yaml

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,6 @@ jobs:
3636
with:
3737
bun-version: "1.3.13"
3838

39-
- name: Install protoc
40-
# Required by Rust plugins (plugin-{discord,groq,openai,sql,whatsapp})
41-
# whose `elizaos = "2.0.0"` crate dep invokes prost-build at build time.
42-
run: |
43-
if command -v protoc >/dev/null 2>&1; then
44-
echo "protoc already installed: $(protoc --version)"
45-
exit 0
46-
fi
47-
sudo apt-get update -q
48-
sudo apt-get install -y protobuf-compiler
49-
protoc --version
50-
5139
- name: Install dependencies
5240
run: bun install
5341

@@ -78,32 +66,6 @@ jobs:
7866
timeout-minutes: 10
7967
run: cd packages/interop && bun run test
8068

81-
- name: Setup Python
82-
uses: actions/setup-python@v6
83-
with:
84-
python-version: "3.14"
85-
86-
- name: Install Python dependencies
87-
run: |
88-
python -m pip install --upgrade pip
89-
python -m pip install -r packages/python/requirements-dev.lock
90-
python -m pip install -e packages/python --no-deps
91-
92-
- name: Run Python tests (@elizaos/python)
93-
timeout-minutes: 10
94-
run: cd packages/python && python -m pytest -q
95-
96-
- name: Run Python tests (@elizaos/interop python)
97-
timeout-minutes: 10
98-
run: cd packages/interop/python && python -m pytest -q
99-
100-
- name: Setup Rust
101-
uses: dtolnay/rust-toolchain@stable
102-
103-
- name: Run Rust tests (@elizaos/rust)
104-
timeout-minutes: 10
105-
run: cd packages/rust && cargo test -q --locked
106-
10769
# Lint and format job
10870
lint-and-format:
10971
# Skip duplicate runs: run on push to main, or on pull_request events only

.github/workflows/claude-code-review.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ jobs:
3535

3636
- name: Run Claude Code Review
3737
id: claude-review
38+
# Don't fail the workflow when the Anthropic API is unavailable
39+
# (low credit balance, rate limit, transient outage). The bot review
40+
# is best-effort; a missing review must not block CI.
41+
continue-on-error: true
3842
uses: anthropics/claude-code-action@v1
3943
with:
4044
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

.github/workflows/claude.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ jobs:
3333

3434
- name: Run Claude Code
3535
id: claude
36+
# Don't fail the workflow when the Anthropic API is unavailable
37+
# (low credit balance, rate limit, transient outage). @claude is a
38+
# best-effort assistant; an unavailable run must not turn the CI red.
39+
continue-on-error: true
3640
uses: anthropics/claude-code-action@v1
3741
with:
3842
anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

0 commit comments

Comments
 (0)