Spofford/deploylib#660
Draft
raymondk wants to merge 9 commits into
Draft
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Extracts host-independent deployment and project-model logic into icp-deploy-canister, while retaining host-specific execution in icp and icp-cli.
Changes:
- Moves manifest, network, parser, canister, and project models into the new crate.
- Introduces filesystem, ICP transport, ID-store, and sync-executor abstractions.
- Rewires installation, synchronization, and environment-variable handling through the extracted core.
Reviewed changes
Copilot reviewed 39 out of 51 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
crates/icp/src/parsers.rs |
Re-exports extracted parsers. |
crates/icp/src/network/mod.rs |
Retains host network facade. |
crates/icp/src/manifest/mod.rs |
Retains host manifest loading. |
crates/icp/src/lib.rs |
Re-exports core models and injects host files. |
crates/icp/src/host_files.rs |
Implements host filesystem access. |
crates/icp/src/canister/sync/script.rs |
Removes superseded script sync implementation. |
crates/icp/src/canister/sync/plugin.rs |
Executes resolved plugin invocations. |
crates/icp/src/canister/sync/mod.rs |
Splits plugin and script execution APIs. |
crates/icp/src/canister/script.rs |
Adds command-list execution entry point. |
crates/icp/src/canister/recipe/mod.rs |
Re-exports recipe interfaces. |
crates/icp/src/canister/recipe/handlebars.rs |
Adapts resolver errors. |
crates/icp/src/canister/mod.rs |
Re-exports extracted canister models. |
crates/icp/Cargo.toml |
Adds core dependency and feature forwarding. |
crates/icp-deploy-canister/src/testutil.rs |
Adds test filesystem implementation. |
crates/icp-deploy-canister/src/sync_exec.rs |
Defines resolved sync invocations and executor traits. |
crates/icp-deploy-canister/src/prelude.rs |
Defines shared paths and constants. |
crates/icp-deploy-canister/src/parsers.rs |
Houses amount parsers and tests. |
crates/icp-deploy-canister/src/network/mod.rs |
Houses network configuration models. |
crates/icp-deploy-canister/src/manifest/serde_helpers.rs |
Adds manifest deserialization helper. |
crates/icp-deploy-canister/src/manifest/recipe.rs |
Houses recipe manifest models. |
crates/icp-deploy-canister/src/manifest/project.rs |
Houses project manifest model and tests. |
crates/icp-deploy-canister/src/manifest/network.rs |
Houses network manifest model. |
crates/icp-deploy-canister/src/manifest/mod.rs |
Exposes manifest modules and injected loading. |
crates/icp-deploy-canister/src/manifest/environment.rs |
Houses environment manifest model. |
crates/icp-deploy-canister/src/manifest/dependency.rs |
Houses dependency manifest model. |
crates/icp-deploy-canister/src/manifest/adapter/script.rs |
Defines script adapters. |
crates/icp-deploy-canister/src/manifest/adapter/prebuilt.rs |
Defines WASM source adapters. |
crates/icp-deploy-canister/src/manifest/adapter/plugin.rs |
Defines validated plugin adapters. |
crates/icp-deploy-canister/src/manifest/adapter/mod.rs |
Exposes adapter modules. |
crates/icp-deploy-canister/src/lib.rs |
Exposes the extracted deployment core. |
crates/icp-deploy-canister/src/ids.rs |
Defines ID-store abstraction. |
crates/icp-deploy-canister/src/icp_access.rs |
Defines ICP transport abstraction. |
crates/icp-deploy-canister/src/files.rs |
Defines filesystem abstraction. |
crates/icp-deploy-canister/src/canister/recipe/mod.rs |
Defines injectable recipe resolution. |
crates/icp-deploy-canister/src/canister/mod.rs |
Houses canister settings and controller models. |
crates/icp-deploy-canister/Cargo.toml |
Configures the new crate. |
crates/icp-cli/src/operations/sync.rs |
Bridges core sync execution to host progress. |
crates/icp-cli/src/operations/proxy_management.rs |
Removes migrated install operations. |
crates/icp-cli/src/operations/mod.rs |
Exposes host access adapters. |
crates/icp-cli/src/operations/install.rs |
Delegates installation to the core. |
crates/icp-cli/src/operations/binding_env_vars.rs |
Delegates binding updates to the core. |
crates/icp-cli/src/operations/access.rs |
Implements host ICP and artifact access. |
crates/icp-cli/src/commands/sync.rs |
Applies bindings before standalone sync. |
crates/icp-cli/src/commands/canister/install.rs |
Uses the extracted installation API. |
crates/icp-cli/Cargo.toml |
Adds the new core dependency. |
Cargo.toml |
Registers the workspace dependency. |
Cargo.lock |
Records the new package graph. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+192
to
+195
| match &args.wasm { | ||
| // Explicit wasm file: read it through the host filesystem. | ||
| Some(wasm_path) => { | ||
| install_canister_resolved( |
Comment on lines
+38
to
+39
| async fn is_dir(&self, path: &Path) -> bool { | ||
| path.is_dir() |
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.