-
Notifications
You must be signed in to change notification settings - Fork 203
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Python: Use Maturin to build SDKs (#2025)
* Remove `lib` prefix from generated module names * Build Pokemon service with `Maturin` * Fix Maturin build on CI * Generate minimal `pyproject.toml` for generated SDKs to build from source using Maturin * Fix `ktlint` issues * Bring back type stubs for Pokemon service * Update instructions for Lambda * Make `build-wheel` and `build-wheel-release` to depend on `codegen`
- release-2025-03-04
- release-2025-02-20
- release-2025-02-12
- release-2025-02-03
- release-2025-01-28
- release-2025-01-23
- release-2025-01-17
- release-2025-01-14
- release-2024-12-30
- release-2024-12-26
- release-2024-12-16
- release-2024-12-03
- release-2024-11-05
- release-2024-10-30
- release-2024-10-24
- release-2024-10-09
- release-2024-10-05
- release-2024-10-04
- release-2024-10-03
- release-2024-09-26
- release-2024-09-17
- release-2024-09-09
- release-2024-08-28
- release-2024-08-16
- release-2024-08-14
- release-2024-08-08
- release-2024-07-16
- release-2024-07-09
- release-2024-07-03
- release-2024-06-19
- release-2024-06-17
- release-2024-06-12
- release-2024-06-10
- release-2024-06-03
- release-2024-05-28
- release-2024-05-22
- release-2024-05-21
- release-2024-05-08
- release-2024-04-30
- release-2024-04-19
- release-2024-04-11
- release-2024-04-02
- release-2024-03-25
- release-2024-03-12
- release-2024-02-22
- release-2024-02-15
- release-2024-02-08
- release-2024-01-24
- release-2024-01-18
- release-2024-01-10
- release-2023-12-13
- release-2023-12-11
- release-2023-12-08
- release-2023-12-01
- release-2023-11-27
- release-2023-11-26
- release-2023-11-25
- release-2023-11-21
- release-2023-11-17
- release-2023-11-16
- release-2023-11-15
- release-2023-11-14
- release-2023-11-01
- release-2023-10-31
- release-2023-08-22
- release-2023-08-01
- release-2023-05-23
- release-2023-04-26
- release-2023-04-11
- release-2023-03-23
- release-2023-02-24
- release-2023-02-14
- release-2023-02-06
- release-2023-01-25
- release-2023-01-24
- release-2023-01-12
- release-2023-01-11
Showing
10 changed files
with
89 additions
and
60 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
12 changes: 0 additions & 12 deletions
12
rust-runtime/aws-smithy-http-server-python/examples/.cargo/config.toml
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
pokemon-service-client/ | ||
pokemon-service-server-sdk/ | ||
libpokemon_service_server_sdk.so | ||
wheels/ |
51 changes: 30 additions & 21 deletions
51
rust-runtime/aws-smithy-http-server-python/examples/Makefile
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,56 +1,65 @@ | ||
OS := $(shell uname -s) | ||
SRC_DIR := $(shell git rev-parse --show-toplevel) | ||
CUR_DIR := $(shell pwd) | ||
GRADLE := $(SRC_DIR)/gradlew | ||
WHEELS := $(CUR_DIR)/wheels | ||
SERVER_SDK_DST := $(CUR_DIR)/pokemon-service-server-sdk | ||
CLIENT_SDK_DST := $(CUR_DIR)/pokemon-service-client | ||
SERVER_SDK_SRC := $(SRC_DIR)/codegen-server-test/python/build/smithyprojections/codegen-server-test-python/pokemon-service-server-sdk/rust-server-codegen-python | ||
CLIENT_SDK_SRC := $(SRC_DIR)/codegen-client-test/build/smithyprojections/codegen-client-test/pokemon-service-client/rust-codegen | ||
|
||
SHARED_LIBRARY_DST := $(CUR_DIR)/libpokemon_service_server_sdk.so | ||
ifeq ($(OS), Darwin) | ||
DEBUG_SHARED_LIBRARY_SRC := $(SRC_DIR)/target/debug/libpokemon_service_server_sdk.dylib | ||
RELEASE_SHARED_LIBRARY_SRC := $(SRC_DIR)/target/release/libpokemon_service_server_sdk.dylib | ||
else | ||
DEBUG_SHARED_LIBRARY_SRC := $(SRC_DIR)/target/debug/libpokemon_service_server_sdk.so | ||
RELEASE_SHARED_LIBRARY_SRC := $(SRC_DIR)/target/release/libpokemon_service_server_sdk.so | ||
endif | ||
HAS_MATURIN := $(shell command -v maturin 2> /dev/null) | ||
|
||
all: codegen | ||
|
||
codegen: | ||
$(GRADLE) --project-dir $(SRC_DIR) -P modules='pokemon-service-server-sdk,pokemon-service-client' :codegen-client-test:assemble :codegen-server-test:python:assemble | ||
mkdir -p $(SERVER_SDK_DST) $(CLIENT_SDK_DST) | ||
mkdir -p $(SERVER_SDK_DST) $(CLIENT_SDK_DST) $(WHEELS) | ||
cp -av $(SERVER_SDK_SRC)/* $(SERVER_SDK_DST)/ | ||
cp -av $(CLIENT_SDK_SRC)/* $(CLIENT_SDK_DST)/ | ||
|
||
clippy: codegen | ||
cargo clippy | ||
ensure-maturin: | ||
ifndef HAS_MATURIN | ||
$(error "maturin is not available; please install it via 'pip install maturin' or 'cargo install maturin'") | ||
endif | ||
|
||
build: codegen | ||
cargo build | ||
ln -sf $(DEBUG_SHARED_LIBRARY_SRC) $(SHARED_LIBRARY_DST) | ||
# Note on `--compatibility linux`: Maturin by default uses `manylinux_x_y` but it is not supported | ||
# by our current CI version (3.7.10), we can drop `--compatibility linux` when we switch to higher Python version. | ||
# For more detail: https://github.com/pypa/manylinux | ||
build-wheel: ensure-maturin codegen | ||
maturin build --manifest-path $(SERVER_SDK_DST)/Cargo.toml --out $(WHEELS) --compatibility linux | ||
|
||
py_check: build | ||
mypy pokemon_service.py | ||
build-wheel-release: ensure-maturin codegen | ||
maturin build --manifest-path $(SERVER_SDK_DST)/Cargo.toml --out $(WHEELS) --compatibility linux --release | ||
|
||
install-wheel: | ||
find $(WHEELS) -type f -name '*.whl' | xargs python3 -m pip install --user --force-reinstall | ||
|
||
build: build-wheel install-wheel | ||
|
||
release: codegen | ||
cargo build --release | ||
ln -sf $(RELEASE_SHARED_LIBRARY_SRC) $(SHARED_LIBRARY_DST) | ||
release: build-wheel-release install-wheel | ||
|
||
run: build | ||
python3 $(CUR_DIR)/pokemon_service.py | ||
|
||
run-release: release | ||
python3 $(CUR_DIR)/pokemon_service.py | ||
|
||
py-check: build | ||
mypy pokemon_service.py | ||
|
||
test: build | ||
cargo test | ||
|
||
clippy: codegen | ||
cargo clippy | ||
|
||
doc-open: codegen | ||
cargo doc --no-deps --open | ||
|
||
clean: | ||
cargo clean || echo "Unable to run cargo clean" | ||
|
||
distclean: clean | ||
rm -rf $(SERVER_SDK_DST) $(CLIENT_SDK_DST) $(CUR_DIR)/Cargo.lock $(SHARED_LIBRARY_DST) | ||
rm -rf $(SERVER_SDK_DST) $(CLIENT_SDK_DST) $(WHEELS) $(CUR_DIR)/Cargo.lock | ||
|
||
.PHONY: all |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters