-
Notifications
You must be signed in to change notification settings - Fork 32
chore: remove unused psutil & rapidfuzz dependencies, make google-cloud-secret-manager optional 'dev' extra (WASM compatibility prep) #670
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…l for WASM compatibility - Remove psutil and rapidfuzz from main dependencies (marked as unused) - Move google-cloud-secret-manager to dev extras group - Add new 'system' extras group for psutil and rapidfuzz - Update deptry configuration comments to reflect optional status This enables airbyte-cdk to be installed in WASM environments like Pyodide by making problematic binary dependencies optional. Co-Authored-By: AJ Steers <[email protected]>
Automatic code formatting applied during dependency update process. Includes line wrapping and copyright header removal. Co-Authored-By: AJ Steers <[email protected]>
|
Original prompt from AJ Steers: |
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
👋 Greetings, Airbyte Team Member!Here are some helpful tips and reminders for your convenience. Testing This CDK VersionYou can test this version of the CDK using the following: # Run the CLI from this branch:
uvx 'git+https://github.com/airbytehq/airbyte-python-cdk.git@devin/1753304576-wasm-compatibility-deps#egg=airbyte-python-cdk[dev]' --help
# Update a connector to use the CDK from this branch ref:
cd airbyte-integrations/connectors/source-example
poe use-cdk-branch devin/1753304576-wasm-compatibility-depsHelpful ResourcesPR Slash CommandsAirbyte Maintainers can execute the following slash commands on your PR:
|
Address PR feedback from @aaronsteers to fully remove psutil and rapidfuzz rather than making them optional dependencies. These packages are unused and were marked as TODO for removal. Changes: - Remove psutil and rapidfuzz from optional dependencies - Remove 'system' extras group (no longer needed) - Update deptry comments to reflect complete removal - Keep google-cloud-secret-manager in dev extras as requested Co-Authored-By: AJ Steers <[email protected]>
|
Closing due to inactivity for more than 7 days. Configure here. |
feat: make psutil, rapidfuzz, and google-cloud-secret-manager optional for WASM compatibility
Summary
This PR makes the airbyte-cdk package compatible with WASM environments like Pyodide by moving problematic binary dependencies to optional extras groups. The main changes:
psutilandrapidfuzzwere marked as TODO for removal and are not used in core declarative manifest executiongoogle-cloud-secret-manageris moved to thedevextras group since it's only needed for development/secret management featuressystemextra forpsutil/rapidfuzzand updateddevextra to includegoogle-cloud-secret-managerThese changes enable
pip install airbyte-cdkto work in Pyodide without requiring binary dependencies that can't be compiled to WASM.Review & Testing Checklist for Human
await micropip.install("airbyte-cdk")works in Pyodide without errorsgoogle-cloud-secret-managerto dev extras doesn't break any secret management features used in productionpoetry run poe check-cito ensure no regressions in test suiteRecommended test plan:
pip install airbyte-cdk[dev]to verify secret manager functionality still works when explicitly installedDiagram
%%{ init : { "theme" : "default" }}%% graph TD pyproject["pyproject.toml<br/>(Main Config)"]:::major-edit poetry_lock["poetry.lock<br/>(Generated)"]:::major-edit schema["declarative_component_schema.py<br/>(Auto-formatted)"]:::minor-edit main_deps["Main Dependencies<br/>(Required for all installs)"]:::context dev_extra["dev extras<br/>(Development features)"]:::context system_extra["system extras<br/>(System monitoring)"]:::context pyproject --> main_deps pyproject --> dev_extra pyproject --> system_extra main_deps -.->|"REMOVED"| psutil_old["psutil"]:::removed main_deps -.->|"REMOVED"| rapidfuzz_old["rapidfuzz"]:::removed main_deps -.->|"MOVED"| gcs_old["google-cloud-secret-manager"]:::removed dev_extra -->|"ADDED"| gcs_new["google-cloud-secret-manager"]:::context system_extra -->|"ADDED"| psutil_new["psutil (optional)"]:::context system_extra -->|"ADDED"| rapidfuzz_new["rapidfuzz (optional)"]:::context subgraph Legend L1[Major Edit]:::major-edit L2[Minor Edit]:::minor-edit L3[Context/No Edit]:::context L4[Removed]:::removed end classDef major-edit fill:#90EE90 classDef minor-edit fill:#87CEEB classDef context fill:#FFFFFF classDef removed fill:#FFB6C1Notes
serpyco-rsdependency refactor was explicitly deferred to a separate session as requesteddeclarative_component_schema.pywere applied automatically during the dependency update process