Epic: Python lane & cloud CLIs (awscli, gcloud)

Open
#73 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Quiet
Tech stack
aws, gcp, python, wasm

Research direction

Start with ADR #26 and the eryx-wasm-runtime foundation described in the issue, then review spikes #74–#78 and the manifest/driver work in #75. The epic is done when the Python CPython→wasip2 lane exists and the awscli v1 and gcloud compile/run spikes have addressed HTTPS, with gcloud's subprocess dependency tracked against #49.

Written by the indexing model from the issue text.

Description

epic python

Add a fourth CLI build lane — Python (CPython → wasip2) — and use it to attempt the cloud CLIs (awscli, gcloud), which are themselves Python programs.

Why a Python lane

ADR #26 defined three language lanes (Rust/C → wasip2, Go → wasip3). awscli and gcloud are both Python, so they collapse into one new lane rather than three bespoke efforts. eryx has already done the hard part: eryx-wasm-runtime is built on componentize-py with a prebuilt libpython3.14.so + a python-stdlib.tar.zst bundle and Python pre-initialization. That runtime is directly cribbable as the foundation for this lane.

Hard truths (per ADR #26 — candidates are hypotheses, not a catalog)

  • Outbound HTTPS is the real blocker for cloud CLIs, not Python itself: wasi-sockets/wasi-http + TLS + DNS + CA certs. The gh demo already established a sandbox pattern (mise run setup-gh-sandbox).
  • awscli v2 is a compiled bundle — target v1 (pip-installable, ~pure Python: awscli + botocore + s3transfer).
  • gcloud shells out heavily to its own bundled interpreter → couples to the subprocess executor epic #49. It's also large.
  • Every candidate needs a real compile/run spike before it's "supported".

Work

  • #74 ADR/spike: Python lane via componentize-py (CPython→wasip2)
  • #75 Add lang = python to the build manifest + driver (depends on #51)
  • #76 Spike: outbound HTTPS from a Python component (shared blocker)
  • #77 Spike: awscli v1 as a Python-lane component
  • #78 Spike: gcloud (Cloud SDK) as a Python-lane component

Related C-lane networked candidate (tracked under #46): #79 curl.

Relates to #46 (CLI component distribution), ADR #26, #51 (manifest/driver), #49 (subprocess).

Dominant language
Rust
Stars
9
Forks
3
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from sd2k/conch

All issues in sd2k/conch

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.