docs(canton): align with new canton-specs and canton-contracts repo structure - #228
docs(canton): align with new canton-specs and canton-contracts repo structure#228pepebndc wants to merge 6 commits into
Conversation
…tructure - Update package paths, names, and module imports to the new canton-contracts layout (packages/access/*-v1, packages/security/pausable-v1, openzeppelin-*-v1 packages, OpenZeppelin.*V1 modules) - Fix Reference Implementation design-document links to the relocated reference-architecture reports in canton-specs - Point the settlement page at the settlement and interoperability experiments in canton-specs - Mark Access Control, Ownable, and Pausable as experimental, work in progress, and unaudited - Replace the broken digitalasset.com/developers link and fix the Library related-link on the settlement page Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
✅ Deploy Preview for openzeppelin-docs-v2 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
| ``` | ||
|
|
||
| Each package's DAR lands in its own `.daml/dist/` directory (for example `pausable/.daml/dist/oz-pausable-0.1.0.dar`). | ||
| Library packages live under `packages/`, grouped by category (`packages/access/` for authorization and ownership, `packages/security/` for operational security). Each package's DAR lands in its own `.daml/dist/` directory (for example `packages/security/pausable-v1/.daml/dist/openzeppelin-pausable-v1-0.1.0.dar`). |
There was a problem hiding this comment.
Since we'll be removing these packages from main, maybe it makes sense to not mention them, or at least somehow make it clear this is (will be) on a development branch?
cc @ericnordelo
There was a problem hiding this comment.
Can you confirm the actual destination? I checked canton-contracts directly: access-control-v1, ownable-v1, pausable-v1 are on main under packages/ right now. My understanding is they'll stay there, with main hosting a mix of mature WIP and already-audited/released code, until each is ready for a release branch tied to its own DAR. None are pulled off main entirely. Is that the right model, or is something actually moving out of main?
Either way, I think it's worth stating this explicitly in the docs: where audited code ends up, how main hosts both mature WIP and audited code side by side, and how canton-specs holds the earlier-stage implementation WIP before something even becomes a canton-contracts package.
| ## Settlement | ||
|
|
||
| - **[Settlement (CIP-112)](/canton/settlement)**: An experimental, interface-shaped settlement engine for atomic multi-leg, value-moving delivery-versus-payment, aligned with the Canton Token Standard. | ||
| - **[Settlement (CIP-112)](/canton/settlement)**: An experimental, interface-shaped settlement engine for atomic multi-leg, value-moving delivery-versus-payment, aligned with the Canton Token Standard. Developed as executable research in [`OpenZeppelin/canton-specs`](https://github.com/OpenZeppelin/canton-specs). |
There was a problem hiding this comment.
Aren't we moving this to OpenZeppelin/canton-contracts?
There was a problem hiding this comment.
for now it's still in specs... will re-align when moved
Co-authored-by: Nenad <nenad.misic@openzeppelin.com>
Co-authored-by: Nenad <nenad.misic@openzeppelin.com>
Co-authored-by: Nenad <nenad.misic@openzeppelin.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ction DARs Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
stevep0z
left a comment
There was a problem hiding this comment.
Overall, things look good. @0xNeshi 's made good points regarding referencing the dars/released/ as the ultimate home for releases to be integrated by devs. I think it's important to make these changes. One part of the solution could be a general note on the main page for Canton stating the general repo pipeline explicitly rather than leaving it implicit is ideal. Draft below, and happy to adjust as needed. See below.
## Where Things Live
OpenZeppelin's Canton work spans three homes, each serving a different stage of the same pipeline:
- **[`OpenZeppelin/canton-specs`](https://github.com/OpenZeppelin/canton-specs)**, the research and incubation workspace. New primitives start here as executable prototypes, real Daml packages proving out a design, alongside the design documents that justify them. Nothing here is a supported package: it exists to answer a bounded design or compatibility question before a primitive is mature enough to become a `canton-contracts` package.
- **[`OpenZeppelin/canton-contracts`](https://github.com/OpenZeppelin/canton-contracts) (`main`)**, the home for real, versioned packages once a primitive has graduated out of `canton-specs`. `main` hosts a mix of maturity levels at once: some packages may still be experimental, 0.x, and unaudited, while others have already cleared the bar for release. A package's own release branch and tag are cut from `main` once it's ready, independent of the others. Releases will be clearly labelled and these docs will be updated as they are created.
- **`dars/released/`** in `canton-contracts`, the home for tagged, immutable, hash-verified release artifacts, indexed in the repo's `manifest.yaml`. This is the actual "depend on this" target for consumers once it exists. No package has been cut as a tagged release yet, so building from `main` is the practical path today.
A primitive typically moves left to right: prototyped in `canton-specs`, promoted into a `canton-contracts` package once proven, then cut as a tagged release from `main` once that specific package clears the stability and audit bar.
Summary
Aligns the Canton docs section with the restructured canton-contracts and canton-specs repositories, and validates every link and repo reference across all canton pages.
Repo-structure alignment
packages/access/access-control-v1,packages/access/ownable-v1, andpackages/security/pausable-v1, namedopenzeppelin-<component>-v1(previouslyoz-*at the repo root). Updated the get-started DAR paths,data-dependenciesexamples, and the library overview.OpenZeppelin.AccessControlV1,OpenZeppelin.OwnableV1,OpenZeppelin.PausableV1.-v1package /V1module convention on the library overview, matching canton-contracts ARCHITECTURE.md.dpm install packagebeforedpm build --all, matching the canton-contracts README.docs/ri-reports/01-*.mdfiles that no longer exist; they now point atdocs/reference-architectures/{dex,lending,cross-chain-stablecoin,confidential-auction}.mdwith link text matching the current report titles.Maturity labeling
Link validation
origin/mainof both repos), and every external URL across the 8 canton pages.daml.comnow redirects todocs.digitalasset.com) and pointed the settlement page's Library related-link at/canton/libraryinstead of/canton.pnpm run lint:linksreports no canton errors (remaining failures are pre-existingcontracts-suilinks).🤖 Generated with Claude Code