29794d0d56
## Summary Follow-up to #1728 (per review: https://github.com/e2b-dev/E2B/pull/1728#discussion_r3822169921): the volume-content client generation now bundles through redocly first, like the envd pipeline, so future `x-internal: true` operations in the synced spec are dropped before SDK schemas are generated. - `redocly.yaml`: new `volume` API rooted at `spec/openapi-volumecontent.yml` with the same `filter-out: x-internal` + `remove-unused-components` decorators as `envd`. - js-sdk `generate:volume-api` and python-sdk `generate-volume-api` now run `redocly bundle volume -o spec/openapi_generated.volume.yml` before their generators (the bundle output is gitignored like the other `openapi_generated.*.yml` files). Regenerated output: the Python volume client is byte-identical (the spec has no `x-internal` operations today); the JS `schema.gen.ts` only loses four response components (400/401/403/409) that no operation referenced, dropped by `remove-unused-components`. Now that #1728 is merged, this is rebased onto `main` (single commit, codegen plumbing only) and ready for review. Link to Devin session: https://app.devin.ai/sessions/175095f75cbe42df8710718a1ff2a6a3 Requested by: @mishushakov --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: mish@e2b.dev <mish@e2b.dev>
59 lines
1.8 KiB
Makefile
59 lines
1.8 KiB
Makefile
ROOT_DIR := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))/../..)
|
|
|
|
generate-api:
|
|
redocly bundle python-sdk --config $(ROOT_DIR)/redocly.yaml -o $(ROOT_DIR)/spec/openapi_generated.python-sdk.yml
|
|
openapi-python-client generate --output-path $(ROOT_DIR)/packages/python-sdk/e2b/api/api --overwrite --path $(ROOT_DIR)/spec/openapi_generated.python-sdk.yml
|
|
rm -rf e2b/api/client
|
|
mv e2b/api/api/e2b_api_client e2b/api/client
|
|
rm -rf e2b/api/api
|
|
ruff format .
|
|
|
|
generate-volume-api:
|
|
redocly bundle volume --config $(ROOT_DIR)/redocly.yaml -o $(ROOT_DIR)/spec/openapi_generated.volume.yml
|
|
openapi-python-client generate --output-path $(ROOT_DIR)/packages/python-sdk/e2b/volume/api --overwrite --path $(ROOT_DIR)/spec/openapi_generated.volume.yml
|
|
rm -rf e2b/volume/client
|
|
mv e2b/volume/api/e2b_api_client e2b/volume/client
|
|
rm -rf e2b/volume/api
|
|
ruff format .
|
|
|
|
# Requires `buf` and the codegen dependency group (`make init`), which
|
|
# provides the `protoc-gen-connectrpc` plugin.
|
|
generate-envd:
|
|
cd $(ROOT_DIR)/spec/envd && pwd && buf generate --template buf-python.gen.yaml
|
|
./scripts/fix-python-pb.sh
|
|
|
|
ruff format .
|
|
|
|
generate: generate-api generate-envd generate-mcp generate-volume-api
|
|
|
|
# Install the code-generation toolchain into the uv env. After this, run the
|
|
# generators locally with e.g. `uv run make generate-api`.
|
|
init:
|
|
uv sync --group codegen
|
|
|
|
typecheck:
|
|
ty check
|
|
|
|
lint:
|
|
ruff check .
|
|
ruff format --check .
|
|
|
|
format:
|
|
ruff format .
|
|
|
|
generate-mcp:
|
|
datamodel-codegen \
|
|
--input ../../spec/mcp-server.json \
|
|
--input-file-type jsonschema \
|
|
--output e2b/sandbox/mcp.py \
|
|
--output-model-type typing.TypedDict \
|
|
--target-python-version 3.10 \
|
|
--class-name McpServer \
|
|
--use-field-description \
|
|
--disable-timestamp \
|
|
--extra-fields forbid
|
|
|
|
.PHONY: test
|
|
test:
|
|
uv run pytest --verbose --numprocesses=4
|