Skip to content

chore(backend-scriptc): ScriptC PoC harness and findings - #5240

Draft
schultzp2020 wants to merge 1 commit into
mainfrom
chore/scriptc-poc-findings
Draft

chore(backend-scriptc): ScriptC PoC harness and findings#5240
schultzp2020 wants to merge 1 commit into
mainfrom
chore/scriptc-poc-findings

Conversation

@schultzp2020

Copy link
Copy Markdown
Contributor

Adds a throwaway packages/backend-scriptc spike that builds Linux ScriptC and Node twin images, benches size/startup/RSS, and runs scriptc coverage --dynamic up a ladder toward the real Hub backend. The package is excluded from Yarn workspaces so Konflux/hermeto never see scriptc.

Findings (high level): A trimmed HTTP + zod PoC works on Windows via Podman (no Mac required). ScriptC image ~86 MB vs Node twin ~228 MB (~2.7×); process RSS ~6 MB vs ~62 MB (~10×). createBackend() and a core static plugin set are coverage-green with --dynamic, but adding dynamicPluginsFeatureLoader hits SC1090 and full packages/backend/src/index.ts has more SC blockers. True dynamic plugins also conflict with scriptc’s build-time embed model (no runtime node_modules load). Full Hub + dynamic plugins is not ready; the next backend-like compile target is the static-plugin rung. Details are in packages/backend-scriptc/REPORT.md.

Review starting points: root script wiring + workspace exclusion in package.json, then REPORT.md, then the Containerfiles / src/main.ts / coverage ladder under src/entries/.

Capture a Linux-container ScriptC spike next to the Hub backend so we can
compare Node vs native deploy size/RSS and record coverage limits for a
full backend with dynamic plugins.

Co-authored-by: Cursor <cursoragent@cursor.com>
@openshift-ci

openshift-ci Bot commented Aug 10, 2026

Copy link
Copy Markdown

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@github-actions

Copy link
Copy Markdown
Contributor

Hey there and thank you for opening this pull request! 👋🏼

We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted.

Details:

The subject "ScriptC PoC harness and findings" found in the pull request title "chore(backend-scriptc): ScriptC PoC harness and findings"
didn't match the configured pattern. Please ensure that the subject
doesn't start with an uppercase character.

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

ready.append("- Ship that as the backend-like image twin")
ready.append("- Treat dynamic plugins as a separate design spike")

(out / "triage.txt").write_text("\n".join(lines) + "\n", encoding="utf-8")
ready.append("- Treat dynamic plugins as a separate design spike")

(out / "triage.txt").write_text("\n".join(lines) + "\n", encoding="utf-8")
(out / "READINESS.txt").write_text("\n".join(ready) + "\n", encoding="utf-8")
@codecov

codecov Bot commented Aug 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 59.96%. Comparing base (820e626) to head (b02383b).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #5240      +/-   ##
==========================================
- Coverage   63.69%   59.96%   -3.74%     
==========================================
  Files         123      111      -12     
  Lines        2424     2198     -226     
  Branches      572      546      -26     
==========================================
- Hits         1544     1318     -226     
  Misses        878      878              
  Partials        2        2              
Flag Coverage Δ
rhdh 59.96% <ø> (-3.74%) ⬇️
Components Coverage Δ
Backend plugins ∅ <ø> (∅)
Backend app 66.66% <ø> (ø)
Frontend app 58.89% <ø> (ø)
Plugin utils ∅ <ø> (∅)
Dynamic plugins utils ∅ <ø> (∅)

Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 820e626...b02383b. Read the comment docs.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

Copy link
Copy Markdown
Contributor

Image was built and published successfully. It is available at:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants