Skip to content

refactor: Rename icp to icp-project - #772

Open
adamspofford-dfinity wants to merge 3 commits into
spofford/factor-appfrom
spofford/rename-icp-project
Open

adamspofford-dfinity wants to merge 3 commits into
spofford/factor-appfrom
spofford/rename-icp-project

Conversation

@adamspofford-dfinity

Copy link
Copy Markdown
Contributor

Stack created with GitHub Stacks CLIGive Feedback 💬

@adamspofford-dfinity
adamspofford-dfinity requested a review from a team as a code owner September 11, 2026 15:05
@adamspofford-dfinity
adamspofford-dfinity added this pull request to stack #777 September 11, 2026 15:05
Copilot AI balanced review requested due to automatic review settings September 14, 2026 14: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.

🟡 Changes recommended

Two documentation references incorrectly identify either the renamed library or the unchanged CLI tracing target.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

Renames the core project library from icp to icp-project, distinguishing it from the icp CLI binary and updating workspace consumers accordingly.

Changes:

  • Renames the package and dependency to icp-project.
  • Updates Rust imports, feature references, tests, lockfile, and tooling guidance.
  • Moves project-domain modules under the renamed crate path.
File summaries
File Description
crates/schema-gen/src/main.rs Updates schema imports.
crates/schema-gen/Cargo.toml Renames schema dependency.
crates/icp-project/src/signal.rs Updates doctest imports.
crates/icp-project/src/prelude.rs Carries shared constants and paths.
crates/icp-project/src/operations/wasm.rs Carries Candid extraction utilities.
crates/icp-project/src/operations/sync.rs Carries sync orchestration.
crates/icp-project/src/operations/recover_cycles.rs Carries cycle recovery logic.
crates/icp-project/src/operations/proxy.rs Carries proxied update calls.
crates/icp-project/src/operations/mod.rs Exposes operation modules.
crates/icp-project/src/operations/misc.rs Carries operation utilities.
crates/icp-project/src/operations/candid_compat.rs Carries compatibility checks.
crates/icp-project/src/operations/build.rs Carries build orchestration.
crates/icp-project/src/operations/binding_env_vars.rs Carries binding-variable updates.
crates/icp-project/src/network/access.rs Carries network access models.
crates/icp-project/src/manifest/serde_helpers.rs Carries deserialization helpers.
crates/icp-project/src/manifest/recipe.rs Carries recipe manifests.
crates/icp-project/src/manifest/environment.rs Carries environment manifests.
crates/icp-project/src/manifest/dependency.rs Carries dependency manifests.
crates/icp-project/src/manifest/adapter/script.rs Carries script adapters.
crates/icp-project/src/manifest/adapter/prebuilt.rs Carries prebuilt adapters.
crates/icp-project/src/manifest/adapter/mod.rs Exposes adapter modules.
crates/icp-project/src/fs/yaml.rs Carries YAML loading.
crates/icp-project/src/fs/mod.rs Carries filesystem helpers.
crates/icp-project/src/fs/lock.rs Carries filesystem locking.
crates/icp-project/src/fs/json.rs Carries JSON persistence.
crates/icp-project/src/canister/wasm.rs Carries WASM fetch abstraction.
crates/icp-project/src/canister/sync/mod.rs Carries sync dispatch.
crates/icp-project/src/canister/script.rs Carries script execution.
crates/icp-project/src/canister/recipe/mod.rs Carries recipe resolution.
crates/icp-project/src/canister/build/script.rs Carries script builds.
crates/icp-project/src/canister/build/prebuilt.rs Carries prebuilt builds.
crates/icp-project/src/canister/build/mod.rs Carries build dispatch.
crates/icp-project/src/agent.rs Carries lazy-agent abstraction.
crates/icp-project/Cargo.toml Renames the package.
crates/icp-cli/tests/token_tests.rs Updates test imports.
crates/icp-cli/tests/telemetry_tests.rs Updates test imports.
crates/icp-cli/tests/sync_tests.rs Updates sync test references.
crates/icp-cli/tests/recipe_tests.rs Updates test imports.
crates/icp-cli/tests/project_tests.rs Updates test imports.
crates/icp-cli/tests/network_tests.rs Updates test imports.
crates/icp-cli/tests/network_status_tests.rs Updates test imports.
crates/icp-cli/tests/network_ping_tests.rs Updates test imports.
crates/icp-cli/tests/message_send_tests.rs Updates test references.
crates/icp-cli/tests/identity_tests.rs Updates test imports.
crates/icp-cli/tests/deploy_tests.rs Updates test references.
crates/icp-cli/tests/dependency_tests.rs Updates test imports.
crates/icp-cli/tests/cycles_tests.rs Updates test imports.
crates/icp-cli/tests/common/softhsm.rs Updates helper imports.
crates/icp-cli/tests/common/context.rs Updates helper imports.
crates/icp-cli/tests/common/clients/icp_cli.rs Updates client imports.
crates/icp-cli/tests/common/clients.rs Updates client imports.
crates/icp-cli/tests/canister_top_up_tests.rs Updates test imports.
crates/icp-cli/tests/canister_stop_tests.rs Updates test imports.
crates/icp-cli/tests/canister_status_tests.rs Updates test imports.
crates/icp-cli/tests/canister_start_tests.rs Updates test imports.
crates/icp-cli/tests/canister_snapshot_tests.rs Updates test imports.
crates/icp-cli/tests/canister_settings_tests.rs Updates test imports.
crates/icp-cli/tests/canister_metadata_tests.rs Updates test imports.
crates/icp-cli/tests/canister_logs_tests.rs Updates test imports.
crates/icp-cli/tests/canister_link_tests.rs Updates test references.
crates/icp-cli/tests/canister_install_tests.rs Updates test imports.
crates/icp-cli/tests/canister_info_tests.rs Updates test imports.
crates/icp-cli/tests/canister_delete_tests.rs Updates test imports.
crates/icp-cli/tests/canister_create_tests.rs Updates test imports.
crates/icp-cli/tests/canister_call_tests.rs Updates test imports.
crates/icp-cli/tests/canister_call_sign_tests.rs Updates test references.
crates/icp-cli/tests/canister_call_root_key_tests.rs Updates test imports.
crates/icp-cli/tests/bundle_tests.rs Updates test imports.
crates/icp-cli/tests/build_tests.rs Updates test imports.
crates/icp-cli/tests/build_adapter_tests.rs Updates test imports.
crates/icp-cli/src/telemetry.rs Updates prelude import.
crates/icp-cli/src/render/plain.rs Updates task imports.
crates/icp-cli/src/render/mod.rs Updates renderer references.
crates/icp-cli/src/render/interactive.rs Updates task imports.
crates/icp-cli/src/options.rs Updates option-model imports.
crates/icp-cli/src/main.rs Updates core references.
crates/icp-cli/src/dist.rs Updates filesystem calls.
crates/icp-cli/src/complete.rs Updates completion imports.
crates/icp-cli/src/commands/token/transfer.rs Updates parser import.
crates/icp-cli/src/commands/token/approve.rs Updates parser imports.
crates/icp-cli/src/commands/sync.rs Updates sync imports.
crates/icp-cli/src/commands/project/bundle.rs Updates bundle imports.
crates/icp-cli/src/commands/new.rs Updates crate guidance.
crates/icp-cli/src/commands/network/stop.rs Updates network imports.
crates/icp-cli/src/commands/network/status.rs Updates network imports.
crates/icp-cli/src/commands/network/start.rs Updates network imports.
crates/icp-cli/src/commands/network/args.rs Updates constant import.
crates/icp-cli/src/commands/message/send.rs Updates message dependencies.
crates/icp-cli/src/commands/identity/reauth.rs Updates lock error type.
crates/icp-cli/src/commands/identity/new.rs Updates identity dependencies.
crates/icp-cli/src/commands/identity/link/web.rs Updates web identity references.
crates/icp-cli/src/commands/identity/link/hsm.rs Updates HSM references.
crates/icp-cli/src/commands/identity/import.rs Updates identity import references.
crates/icp-cli/src/commands/identity/export.rs Updates identity export imports.
crates/icp-cli/src/commands/identity/delegation/use.rs Updates delegation references.
crates/icp-cli/src/commands/identity/delegation/sign.rs Updates delegation references.
crates/icp-cli/src/commands/identity/delegation/request.rs Updates delegation references.
crates/icp-cli/src/commands/deploy.rs Updates deployment imports.
crates/icp-cli/src/commands/cycles/transfer.rs Updates cycle parser import.
crates/icp-cli/src/commands/cycles/mint.rs Updates cycle parser imports.
crates/icp-cli/src/commands/completions.rs Updates prelude import.
crates/icp-cli/src/commands/canister/top_up.rs Updates parser import.
crates/icp-cli/src/commands/canister/stop.rs Updates operation import.
crates/icp-cli/src/commands/canister/status.rs Updates canister imports.
crates/icp-cli/src/commands/canister/start.rs Updates operation import.
crates/icp-cli/src/commands/canister/snapshot/upload.rs Updates snapshot imports.
crates/icp-cli/src/commands/canister/snapshot/restore.rs Updates operation import.
crates/icp-cli/src/commands/canister/snapshot/list.rs Updates snapshot imports.
crates/icp-cli/src/commands/canister/snapshot/download.rs Updates snapshot references.
crates/icp-cli/src/commands/canister/snapshot/delete.rs Updates operation import.
crates/icp-cli/src/commands/canister/snapshot/create.rs Updates snapshot imports.
crates/icp-cli/src/commands/canister/settings/update.rs Updates settings references.
crates/icp-cli/src/commands/canister/settings/sync.rs Updates settings references.
crates/icp-cli/src/commands/canister/settings/show.rs Updates operation import.
crates/icp-cli/src/commands/canister/mod.rs Updates visibility import.
crates/icp-cli/src/commands/canister/migrate_id.rs Updates migration imports.
crates/icp-cli/src/commands/canister/metadata.rs Updates metadata import.
crates/icp-cli/src/commands/canister/logs.rs Updates logging imports.
crates/icp-cli/src/commands/canister/link.rs Updates environment import.
crates/icp-cli/src/commands/canister/install.rs Updates installation imports.
crates/icp-cli/src/commands/canister/delete.rs Updates deletion imports.
crates/icp-cli/src/commands/canister/create.rs Updates creation references.
crates/icp-cli/src/commands/canister/call.rs Updates call references.
crates/icp-cli/src/commands/build.rs Updates build imports.
crates/icp-cli/src/commands/args.rs Updates shared argument imports.
crates/icp-cli/src/call_output.rs Updates output helper references.
crates/icp-cli/Cargo.toml Renames CLI dependency.
crates/icp-app/src/wasm.rs Updates WASM dependencies.
crates/icp-app/src/telemetry_data.rs Updates project model references.
crates/icp-app/src/signed_message.rs Updates signed-message dependencies.
crates/icp-app/src/settings.rs Updates settings dependencies.
crates/icp-app/src/recipe.rs Updates recipe dependencies.
crates/icp-app/src/package.rs Updates package-cache references.
crates/icp-app/src/operations/token/transfer.rs Updates parser import.
crates/icp-app/src/operations/token/approve.rs Updates parser import.
crates/icp-app/src/operations/snapshot_transfer.rs Updates snapshot dependencies.
crates/icp-app/src/network/resolve.rs Updates network dependencies.
crates/icp-app/src/network/managed/run.rs Updates launcher dependencies.
crates/icp-app/src/network/managed/launcher.rs Updates launcher references.
crates/icp-app/src/network/managed/docker.rs Updates Docker network imports.
crates/icp-app/src/network/managed/cache.rs Updates cache references.
crates/icp-app/src/network/directory.rs Updates network-directory references.
crates/icp-app/src/network/custom_domains.rs Updates filesystem references.
crates/icp-app/src/network/config.rs Updates prelude import.
crates/icp-app/src/network/accessor.rs Updates network accessor imports.
crates/icp-app/src/lib.rs Updates architectural links.
crates/icp-app/src/identity/mod.rs Updates identity dependencies.
crates/icp-app/src/identity/manifest.rs Updates manifest dependencies.
crates/icp-app/src/identity/keyring_mock.rs Updates prelude import.
crates/icp-app/src/identity/key.rs Updates identity references.
crates/icp-app/src/identity/delegation.rs Updates delegation imports.
crates/icp-app/src/directories.rs Updates directory imports.
crates/icp-app/src/context/tests.rs Updates context test references.
crates/icp-app/src/context/mod.rs Updates context model references.
crates/icp-app/src/context/init.rs Updates initialization dependencies.
crates/icp-app/src/agent.rs Updates prelude import.
crates/icp-app/Cargo.toml Renames dependencies and features.
clippy.toml Updates path-type guidance.
Cargo.toml Renames workspace dependency.
Cargo.lock Records renamed package graph.
.claude/testing.md Updates testing guidance.
.claude/CLAUDE.md Documents the app/project boundary.
.claude/architecture.md Updates architectural paths.
Review details
  • Files reviewed: 132/187 changed files
  • Comments generated: 2
  • Review effort level: Balanced

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread crates/icp-app/src/lib.rs Outdated
Comment thread crates/icp-cli/tests/sync_tests.rs Outdated
Now that the app half has left, the crate holds only what a project is and
what can be done to one, so `icp` is no longer the name for it — and `icp`
was already the name of the binary, which made `icp::render::plain` in a
tracing target mean the CLI rather than the library.

Mechanical: the directory, the package name, the dependency entries and
every `icp::` path become `icp-project` / `icp_project::`. Tracing targets
named in test assertions are left alone, since those still name the
binary.

The checked-in guidance is brought up to date with the two crates: the
workspace listing, the paths in `architecture.md`, the mock-helper note in
`testing.md` (which now explains the `test-util` feature), and a new
section describing the app/project boundary — which side a thing belongs
on, the four seams that cross it, and why their errors are the one
sanctioned exception to the per-action error-variant rule.
The convention the seam errors actually follow is `#[snafu(transparent)]`,
not a `{source}` display: restating the cause as the wrapper's own message
while still reporting it as a source prints it twice in every chain.

Says so, and says plainly that this is where `transparent` is allowed over a
boxed foreign error, since the rule below otherwise reserves it for this
repo's own error types.
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.

2 participants