Skip to content

Spofford/deploylib#660

Draft
raymondk wants to merge 9 commits into
mainfrom
spofford/deploylib
Draft

Spofford/deploylib#660
raymondk wants to merge 9 commits into
mainfrom
spofford/deploylib

Conversation

@raymondk

Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI review requested due to automatic review settings July 21, 2026 19:23

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 thread crates/icp/src/host_files.rs Outdated
Comment on lines +38 to +39
async fn is_dir(&self, path: &Path) -> bool {
path.is_dir()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants