Migrate funnAI from dfx to icp-cli - #172
Open
icppWorld wants to merge 29 commits into
Open
Conversation
…id resolution, ephemeral port)
…ic-* skills ignored
…ise team controllers
…llama requirements
…nts via mAInerCreator in the local e2e
# Conflicts: # .gitignore
… out of the migration guide
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.
dfxis deprecated;icp-cliis its successor. This migrates the frontend, the ops scripts and the runbooks, and adds a full local end-to-end environment.120 files, +7053 / −2561, 27 commits. Companion to onicai/PoAIW#158 — merge that one first: the e2e harness shells into PoAIW and needs its build artifacts.
What changed
dfx.json,canister_ids.jsonicp.yaml(root,src/funnai_backend,e2e),gateway.port: 0canister_ids.json.icp/data/mappings/<env>.ids.json(committed)dfxhardcoded in ~40 Python filesscripts/lib/icp_helpers.pydfxscripts/e2e/harness.py— the whole app on one local networkscripts/lib/icp_helpers.pyThe single biggest structural win: ~40 files that each shelled out to
dfxdirectly now go through one module. It also carries a mainnet write guard — writes toprd/testing/development/demo/backup/icraise unlessICP_ALLOW_MAINNET_WRITES=1, with tests inscripts/test/test_icp_helpers_guard.py.Two behaviour differences it absorbs: icp-cli has no
--output json(decoding is now client-side via icp-py-core), and it does not inherit dfx's active identity.Local end-to-end
scripts/e2e/harness.pystands up every canister on one icp-cli network and buys a ShareAgent the way a real player does — pay ICP to GameState, GameState asks mAInerCreator to create the canister through the CMC. The CMC and ICP ledger run at their mainnet canister ids on the local replica, so the code paths are the production ones; the ICP and cycles are local test funds on a throwaway network. Driven bymake e2e-start-clean/e2e-install/e2e-test.One deliberate dfx dependency
scripts/upgrade_llms.py:190still callsdfx sns prepare-canisters. icp-cli has nosnssubcommand at all. Documented in the migration guide.Docs
New:
README-icp-cli.md(primer on projects/environments/networks — funnAI is 16 projects),README-developer-migration-guide-from-dfx-to-icp-cli.md(setup, identity migration, command translation, troubleshooting),README-operations.md.README-setup.mdrewritten.README-prd-upgrade-commands.md(321 references),README-prd-settings.mdand the active notes are converted. The two dated deployment records undernotes/are deliberately not rewritten — they are logs of what was actually run at the time, so they get a "historical record — dfx era" banner instead.Verification
Not in this PR
Redeploying mainnet onto icp-built wasms (see
PoAIW/WASM-HASHES.md); a local FUNNAI token ledger in the e2e (ICP and cycles are covered, FUNNAI is not); moving the cycles wallet balance to the cycles ledger.