You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
infra: apply final portal spec updates and remove portal submodule
Apply three upstream spec changes from dfinity/portal@fe646b2 (the final
commit before deprecation):
- canister_metrics endpoint: new management canister query method that
returns cycle consumption broken down by memory, compute, ingress,
instructions, http outcalls, etc. Applied to ic.did, changelog (v0.61.0),
management-canister.md (method doc + reference entry), and
abstract-behavior.md (method-list, abstract rule, query call conditions).
- sender_info validation refactor (dc29431): move sender_info checks into
verify_envelope predicate; remove five now-redundant per-call blocks from
update and query call conditions in abstract-behavior.md.
- Ingress expiry typo fix (8304ab0): add missing "or RS.sender = anonymous_id"
to the subnet read-state ingress_expiry condition.
Remove the dfinity/portal git submodule (.sources/portal). The spec files it
synced — ic.did, certificates.cddl, requests.cddl, http-gateway.did, the
ic-interface-spec split pages, and http-gateway-spec.md — are now maintained
directly in this repository.
Update AGENTS.md: remove portal from the submodule table and per-submodule
bump checklist; replace the "Synced files from submodules" / "Portal bump
checklist" sections with a "Directly maintained spec files" table; remove the
"Portal tracking" section. Update README.md, .sources/VERSIONS, and
.docs-plan/content-authoring.md to remove remaining operational portal
references.
Copy file name to clipboardExpand all lines: .docs-plan/content-authoring.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,8 +5,8 @@
5
5
When drafting a new docs page:
6
6
7
7
1. Read the stub page — it contains content brief, source material, and cross-links
8
-
2. Read source material from `.sources/`. Stub references use shorthand — resolve them per the mapping in "Source material repos" above (e.g., `Portal: building-apps/foo.mdx` → `.sources/portal/docs/building-apps/foo.mdx`).
9
-
> **If source material is unavailable at the expected path:**(1) search `.sources/portal/` for the content under a different path, (2) if truly unavailable, write from the content brief + icskills + your training knowledge, and add `<!-- Source unavailable: [path] — written from content brief -->` so future contributors know to verify.
8
+
2. Read source material from `.sources/`. Resolve paths using the "Source material repos" table in AGENTS.md.
9
+
> **If source material is unavailable at the expected path:** write from the content brief + icskills + your training knowledge, and add `<!-- Source unavailable: [path] — written from content brief -->` so future contributors know to verify.
10
10
3. Read any related icskills skill file from `.sources/icskills/` for accurate canister IDs and code patterns.
-**JavaScript / TypeScript** → `icp-js-sdk-docs` (unzip archives before reading; never guess JS SDK API)
247
245
-**Code examples** → `examples` (link to for snippets >30 lines)
248
246
-**Do not modify `.sources/`** — read-only. Edits go to the upstream repos.
249
-
-**Portal `file=` references:** Resolve `file=../../../../submodules/samples/...` paths via `.sources/examples` instead.
250
247
251
248
### Bumping submodules
252
249
@@ -279,7 +276,6 @@ EOF
279
276
280
277
| Submodule | Extra checks on bump |
281
278
|---|---|
282
-
|`portal`| Follow the full portal checklist in "Synced files from submodules" below |
283
279
|`motoko`|**Automated** — `.github/workflows/sync-motoko.yml` opens a PR with the submodule bump, synced docs, and VERSIONS update already committed. Review the content diff and merge. Also check for changed/removed API signatures — grep all Motoko code blocks in docs. |
284
280
|`motoko-core`| Check for changed/removed API signatures — grep all Motoko code blocks in docs |
285
281
|`cdk-rs`| Check `ic-cdk`, `ic-cdk-timers`, `ic-cdk-macros` API changes — grep all Rust code blocks |
@@ -326,68 +322,34 @@ Any link of the form `internetcomputer.org/.../ic-interface-spec#<anchor>` or `.
|`public/references/_attachments/certificates.cddl`|`.sources/portal/docs/references/_attachments/certificates.cddl`| Downloadable CDDL linked from `docs/references/ic-interface-spec/certification.md`|
335
-
|`public/references/_attachments/requests.cddl`|`.sources/portal/docs/references/_attachments/requests.cddl`| Downloadable CDDL linked from `docs/references/ic-interface-spec/https-interface.md`|
336
-
|`public/references/_attachments/http-gateway.did`|`.sources/portal/docs/references/_attachments/http-gateway.did`| Downloadable Candid interface linked from `docs/references/http-gateway-spec.md`|
337
-
|`docs/references/ic-interface-spec/`|`.sources/portal/docs/references/ic-interface-spec.md`| IC interface spec split into 7 focused pages — apply portal diffs by section (see checklist below) |
338
-
|`docs/references/http-gateway-spec.md`|`.sources/portal/docs/references/http-gateway-protocol-spec.md`| HTTP Gateway spec — apply portal diff as a patch on every bump |
327
+
The following files are no longer synced from an external submodule — they are maintained directly in this repository. Update them manually when the IC team announces a new version of the relevant specification.
339
328
340
-
**Portal bump checklist (run on every portal bump):**
329
+
| Local file | What it is | When to update |
330
+
|-----------|-----------|---------------|
331
+
|`public/references/ic.did`| Candid interface of the IC management canister | New management canister methods or changed types; update `docs/references/management-canister.md` and affected guides alongside |
332
+
|`public/references/_attachments/certificates.cddl`| Certificate CDDL schema (linked from `docs/references/ic-interface-spec/certification.md`) | IC certification spec changes |
333
+
|`public/references/_attachments/requests.cddl`| Request CDDL schema (linked from `docs/references/ic-interface-spec/https-interface.md`) | IC HTTPS interface spec changes |
|`docs/references/ic-interface-spec/`| IC Interface Spec split into 7 focused pages | IC spec version bumps — apply changes to the matching file (see section mapping below) |
2. If changed: `cp .sources/portal/docs/references/_attachments/ic.did public/reference/ic.did`
345
-
3. Review diff for new/changed/removed methods
346
-
4. Update `docs/references/management-canister.md` and any affected guides
347
-
5. For each of `certificates.cddl`, `requests.cddl`, `http-gateway.did`: `diff public/references/_attachments/<file> .sources/portal/docs/references/_attachments/<file>` — if changed, copy the updated file to `public/references/_attachments/`
338
+
**IC Interface Spec — section-to-file mapping:**
348
339
349
-
**Step 2 — `ic-interface-spec/`:** The spec is now split into 7 files under `docs/references/ic-interface-spec/`. Each file maps to a section of the portal source:
350
-
351
-
| File | Portal section (## heading) |
340
+
| File | IC spec section |
352
341
|---|---|
353
342
|`index.md`| Introduction, Pervasive concepts, The system state tree |
354
343
|`https-interface.md`| HTTPS Interface |
355
344
|`canister-interface.md`| Canister module format, Canister interface (System API) |
356
345
|`management-canister.md`| The IC management canister, The IC Bitcoin API, The IC Provisional API |
357
346
|`certification.md`| Certification, The HTTP Gateway protocol |
3. Resolve any rejects manually (see note below on link adaptation)
376
-
4. Run `grep -n "ic-interface-spec" docs/references/http-gateway-spec.md` and convert any newly introduced links
377
-
378
-
**Link adaptation for `http-gateway-spec.md`:** The portal source uses absolute `/references/ic-interface-spec#anchor` URLs. Our file uses relative paths into the split `ic-interface-spec/` directory. After every sync, any link of the form `/references/ic-interface-spec#<anchor>` or `./ic-interface-spec.md#<anchor>` must be converted. Use the anchor-to-file mapping at the bottom of `docs/references/http-gateway-spec.md` as the authoritative guide. If a new anchor appears that is not in the comment, find its file with:
**Link adaptation for `http-gateway-spec.md`:** If an update introduces absolute `/references/ic-interface-spec#<anchor>` links, convert them to relative paths using the anchor-to-file mapping at the bottom of `docs/references/http-gateway-spec.md`. If a new anchor is not in that comment, find its file with:
The old portal (`dfinity/portal`) has been replaced by this site. The `.sources/portal` submodule is kept as a read-only reference for spec content (see `ic.did` sync checklist above) but no longer needs active monitoring for content changes.
where the query `Q`, the response `R`, and a certificate `Cert` that is obtained by requesting the path `/subnet` in a **separate** read state request to `/api/v3/canister/<ECID>/read_state` satisfy the following:
2080
+
2081
+
```html
2082
+
2083
+
verify_response(Q, R, Cert) ∧ lookup(["time"], Cert) = Found S.system_time // or "recent enough"
2084
+
2085
+
```
2086
+
2087
+
2024
2088
#### IC Management Canister: Canister information
2025
2089
2026
2090
Every canister can retrieve the canister history, current module hash, and current controllers of every other canister (including itself).
0 commit comments