Skip to content

Commit 25f3e6f

Browse files
author
Test User
committed
fix(release): publish terraphim_rlm to crates.io, add terraphim_lsp binary release
Root causes: - terraphim_rlm was excluded from workspace (stale fcctl-core exclusion) and had registry="terraphim" on a deps that exists on crates.io - terraphim_lsp had no binary build in release-comprehensive.yml Changes: - Uncomment terraphim_rlm from workspace exclude list - Remove registry="terraphim" from terraphim_agent_supervisor dep - Add terraphim_lsp binary build to release-comprehensive.yml - Add both crates to .release-plz.toml - Add terraphim_lsp to publish-crates.sh and publish-crates.yml defaults Published: terraphim_rlm v1.20.5 to crates.io
1 parent e392973 commit 25f3e6f

7 files changed

Lines changed: 129 additions & 7 deletions

File tree

.github/workflows/publish-crates.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ jobs:
6666
elif [ -n "${{ inputs.crate }}" ]; then
6767
echo "list=${{ inputs.crate }}" >> $GITHUB_OUTPUT
6868
else
69-
echo "list=terraphim_update terraphim_github_runner terraphim_gitea_runner terraphim_rlm" >> $GITHUB_OUTPUT
69+
echo "list=terraphim_update terraphim_github_runner terraphim_gitea_runner terraphim_rlm terraphim_lsp" >> $GITHUB_OUTPUT
7070
fi
7171
7272
- name: Publish crates in dependency order

.github/workflows/release-comprehensive.yml

Lines changed: 77 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,21 @@ jobs:
279279
--target ${{ matrix.target }} -p terraphim_server --bin terraphim_server
280280
ls -la "target/${{ matrix.target }}/release/terraphim_server"
281281
282+
- name: Build LSP binary
283+
if: "!matrix.use_cross"
284+
shell: bash
285+
run: |
286+
rustup run stable cargo build --release \
287+
--target ${{ matrix.target }} -p terraphim_lsp --bin terraphim-lsp
288+
289+
- name: Build LSP binary (cross / musl)
290+
if: matrix.use_cross
291+
shell: bash
292+
run: |
293+
rustup run stable cross build --release \
294+
--target ${{ matrix.target }} -p terraphim_lsp --bin terraphim-lsp
295+
ls -la "target/${{ matrix.target }}/release/terraphim-lsp"
296+
282297
- name: Verify binary versions (native builds only)
283298
if: matrix.target == 'x86_64-unknown-linux-gnu'
284299
shell: bash
@@ -310,6 +325,18 @@ jobs:
310325
tar -czf "artifacts/terraphim_server-${VERSION}-${{ matrix.target }}.tar.gz" \
311326
-C "target/${{ matrix.target }}/release" terraphim_server
312327
cp "$BIN" "artifacts/terraphim_server-${{ matrix.target }}"
328+
329+
# LSP binary (optional -- may fail on some targets, non-fatal)
330+
LSP_BIN="target/${{ matrix.target }}/release/terraphim-lsp"
331+
if [ -f "$LSP_BIN" ]; then
332+
tar -czf "artifacts/terraphim-lsp-${VERSION}-${{ matrix.target }}.tar.gz" \
333+
-C "target/${{ matrix.target }}/release" terraphim-lsp
334+
cp "$LSP_BIN" "artifacts/terraphim-lsp-${{ matrix.target }}"
335+
echo "LSP binary packaged successfully"
336+
else
337+
echo "::warning::LSP binary not found at $LSP_BIN -- skipping"
338+
fi
339+
313340
chmod +x artifacts/*
314341
315342
- name: Prepare artifacts (Windows)
@@ -326,6 +353,11 @@ jobs:
326353
7z a -tzip "../../../artifacts/terraphim_server-${VERSION}-${{ matrix.target }}.zip" terraphim_server.exe
327354
cp terraphim_server.exe "../../../artifacts/terraphim_server-${{ matrix.target }}.exe"
328355
fi
356+
# LSP binary (optional, non-fatal if missing)
357+
if [ -f "terraphim-lsp.exe" ]; then
358+
7z a -tzip "../../../artifacts/terraphim-lsp-${VERSION}-${{ matrix.target }}.zip" terraphim-lsp.exe
359+
cp terraphim-lsp.exe "../../../artifacts/terraphim-lsp-${{ matrix.target }}.exe"
360+
fi
329361
cd -
330362
331363
- name: Upload binary artifacts
@@ -362,11 +394,26 @@ jobs:
362394
aarch64/terraphim_server-aarch64-apple-darwin \
363395
-output universal/terraphim_server-universal-apple-darwin
364396
397+
# LSP universal binary (optional -- non-fatal if missing)
398+
if [ -f "x86_64/terraphim-lsp-x86_64-apple-darwin" ] && \
399+
[ -f "aarch64/terraphim-lsp-aarch64-apple-darwin" ]; then
400+
lipo -create \
401+
x86_64/terraphim-lsp-x86_64-apple-darwin \
402+
aarch64/terraphim-lsp-aarch64-apple-darwin \
403+
-output universal/terraphim-lsp-universal-apple-darwin
404+
echo "LSP universal binary created"
405+
else
406+
echo "::warning::LSP macOS binaries missing -- skipping universal creation"
407+
fi
408+
365409
chmod +x universal/*
366410
367-
echo "Verifying universal server binary:"
368-
file universal/terraphim_server-universal-apple-darwin
369-
lipo -info universal/terraphim_server-universal-apple-darwin
411+
echo "Verifying universal binaries:"
412+
for bin in universal/*; do
413+
echo " $bin:"
414+
file "$bin"
415+
lipo -info "$bin"
416+
done
370417
371418
- name: Upload universal binaries
372419
uses: actions/upload-artifact@v5
@@ -421,12 +468,36 @@ jobs:
421468
"$CERT_BASE64" \
422469
"$CERT_PASSWORD"
423470
471+
- name: Sign and notarize terraphim-lsp (if present)
472+
continue-on-error: true
473+
env:
474+
RUNNER_TEMP: ${{ runner.temp }}
475+
run: |
476+
if [ -f "universal/terraphim-lsp-universal-apple-darwin" ]; then
477+
./scripts/sign-macos-binary.sh \
478+
"universal/terraphim-lsp-universal-apple-darwin" \
479+
"$APPLE_ID" \
480+
"$APPLE_TEAM_ID" \
481+
"$APPLE_APP_PASSWORD" \
482+
"$CERT_BASE64" \
483+
"$CERT_PASSWORD"
484+
else
485+
echo "LSP universal binary not found -- skipping signing"
486+
fi
487+
424488
- name: Verify signed binaries
425489
run: |
426490
echo "==> Verifying terraphim_server"
427491
codesign --verify --deep --strict --verbose=2 universal/terraphim_server-universal-apple-darwin
428492
file universal/terraphim_server-universal-apple-darwin
429493
494+
# LSP verification (optional)
495+
if [ -f "universal/terraphim-lsp-universal-apple-darwin" ]; then
496+
echo "==> Verifying terraphim-lsp"
497+
codesign --verify --deep --strict --verbose=2 universal/terraphim-lsp-universal-apple-darwin
498+
file universal/terraphim-lsp-universal-apple-darwin
499+
fi
500+
430501
- name: Upload signed binaries
431502
uses: actions/upload-artifact@v5
432503
with:
@@ -745,6 +816,9 @@ jobs:
745816
### Server Binaries
746817
- `terraphim_server-*`: Server binaries for various platforms
747818
819+
### LSP Binary
820+
- `terraphim-lsp-*`: Language Server Protocol binary for IDE integration
821+
748822
### Client Binaries (agent, cli, grep)
749823
Built from [terraphim-clients](https://github.com/terraphim/terraphim-clients) and attached to this release:
750824
- `terraphim-agent-*`: Terminal UI / REPL

.release-plz.toml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,3 +98,13 @@ name = "terraphim_onepassword_cli"
9898
release = false
9999

100100
# terraphim-markdown-parser excluded from workspace, no release config needed
101+
102+
[[package]]
103+
name = "terraphim_rlm"
104+
changelog_path = "./crates/terraphim_rlm/CHANGELOG.md"
105+
changelog_update = true
106+
107+
[[package]]
108+
name = "terraphim_lsp"
109+
changelog_path = "./crates/terraphim_lsp/CHANGELOG.md"
110+
changelog_update = true

Cargo.lock

Lines changed: 36 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,9 @@ exclude = [
4545
"crates/terraphim_repl",
4646
# Symphony orchestrator (build separately: cd crates/terraphim_symphony && cargo build)
4747
"crates/terraphim_symphony",
48-
# Firecracker-based crates (private git dependency fcctl-core)
49-
"crates/terraphim_rlm",
48+
# Firecracker-based crates (fcctl-core is optional and commented out;
49+
# crate publishes to crates.io without firecracker feature)
50+
# "crates/terraphim_rlm",
5051
# Host-only runners (omitted from Docker build context)
5152
"crates/terraphim_github_runner",
5253
"crates/terraphim_github_runner_server",

crates/terraphim_rlm/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ terraphim_config = { version = "1.20.4", optional = true }
3030
terraphim_automata = { version = "1.20.4", optional = true }
3131
terraphim_types = { version = "1.20.4", optional = true }
3232
terraphim_rolegraph = { version = "1.20.4", optional = true }
33-
terraphim_agent_supervisor = { version = "1.19.2", optional = true, registry = "terraphim" }
33+
terraphim_agent_supervisor = { version = "1.19.2", optional = true }
3434

3535
# Firecracker-rust core for VM and snapshot management (private repo).
3636
# Uncomment when building with --features firecracker on a machine with

scripts/publish-crates.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ CRATES=(
3636
"terraphim_github_runner"
3737
"terraphim_gitea_runner"
3838
"terraphim_rlm"
39+
"terraphim_lsp"
3940
)
4041

4142
declare -A CRATE_DIR_MAP=(

0 commit comments

Comments
 (0)