Skip to content

Commit e69ee77

Browse files
Merge branch 'main' into pr/1398
2 parents dae9781 + 71fd1c2 commit e69ee77

File tree

77 files changed

+2994
-485
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+2994
-485
lines changed

.circleci/config.yml

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,27 @@ jobs:
6666
command: pnpm check-breadcrumbs
6767

6868
lint:
69-
description: Lint Markdown files
69+
description: Lint Markdown files and validate metadata
7070
executor: ubuntu
7171
steps:
7272
- checkout
7373
- setup-node
74+
- run:
75+
name: Get changed files
76+
command: |
77+
if [ -n "$CIRCLE_PULL_REQUEST" ]; then
78+
PR_NUMBER=$(echo $CIRCLE_PULL_REQUEST | rev | cut -d'/' -f1 | rev)
79+
CHANGED_FILES=$(curl -s "https://api.github.com/repos/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME/pulls/$PR_NUMBER/files" | jq -r '.[].filename' | grep '\.mdx$' || true)
80+
echo "export CHANGED_FILES=\"$CHANGED_FILES\"" >> $BASH_ENV
81+
fi
7482
- run:
7583
name: Lint Markdown files
7684
command: pnpm lint
85+
- run:
86+
name: "Metadata Validation (Warning Only)"
87+
command: |
88+
echo "Running metadata validation (warnings will not block PR)..."
89+
pnpm validate-pr-metadata || true
7790
7891
links:
7992
description: Check broken links in documentation

.coderabbit.yaml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,34 @@ reviews:
1010
- path: "**/*.mdx"
1111
instructions: |
1212
"ALWAYS review Markdown content THOROUGHLY with the following criteria:
13+
- First, check the frontmatter section at the top of the file:
14+
1. For regular pages, ensure ALL these fields are present and not empty:
15+
```yaml
16+
---
17+
title: [non-empty]
18+
lang: [non-empty]
19+
description: [non-empty]
20+
topic: [non-empty]
21+
personas: [non-empty array]
22+
categories: [non-empty array]
23+
content_type: [valid type]
24+
---
25+
```
26+
2. For landing pages (index.mdx or files with <Cards>), only these fields are required:
27+
```yaml
28+
---
29+
title: [non-empty]
30+
lang: [non-empty]
31+
description: [non-empty]
32+
topic: [non-empty]
33+
---
34+
```
35+
3. If any required fields are missing or empty, comment:
36+
'This file appears to be missing required metadata. You can fix this by running:
37+
```bash
38+
pnpm metadata-batch-cli:dry "path/to/this/file.mdx"
39+
```
40+
Review the changes, then run without :dry to apply them.'
1341
- Use proper nouns in place of personal pronouns like 'We' and 'Our' to maintain consistency in communal documentation.
1442
- Avoid gender-specific language and use the imperative form.
1543
- Monitor capitalization for emphasis. Avoid using all caps, italics, or bold for emphasis.
File renamed without changes.

components/AutorelayCallout.tsx

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/**
2+
* The AutorelayCallout function renders a callout component with a message about autorelays
3+
*
4+
* @param {Props} props - Expected to be empty, ignored.
5+
* @returns {ReactElement} The AutorelayCallout component, a callout that explains about autorelays.
6+
*/
7+
import type { ReactElement } from 'react';
8+
import { useState } from 'react';
9+
10+
interface Props {
11+
context?: string;
12+
}
13+
export function AutorelayCallout({ context }: Props): ReactElement {
14+
return (
15+
<div
16+
className="custom-callouts nx-w-full nx-mt-6 nx-flex nx-justify-center nx-items-center nx-bg-white dark:nx-bg-black"
17+
>
18+
<div className="nx-w-full nx-px-4 nx-text-center nx-font-medium nx-text-sm nx-text-left">
19+
<div className="nx-text-left">
20+
Normally we expect Superchain blockchains to run an autorelayer and relay your messages automatically.
21+
However, for performance reasons or reliability, you might decide to submit the executing message manually.
22+
See below to learn how to do that.
23+
</div>
24+
</div>
25+
</div>
26+
);
27+
}

components/calculator/ChainParametersForm.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ export function ChainParametersForm(): ReactElement {
196196
labelClass="calculator-label"
197197
data={comparableTransactionTypeOptions}
198198
onSelect={setComparableTransactionType}
199-
description="What are the transaction types are similar to"
199+
description="What transaction types are similar to"
200200
className="calculator-select t-1 sm:text-lg py-1 px-2 sm:py-2 sm:px-4"
201201
label="Comparable Transaction Type"
202202
/>

components/calculator/Inputs/CheckboxInput.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export const CheckboxInput: React.FC<Props> = React.memo(
2222
{...otherProps}
2323
type="checkbox"
2424
onChange={onCheckboxChange}
25-
className={`${className} meta-checkbox accent-custom-puple toggle bg-custom-puple`}
25+
className={`${className} meta-checkbox accent-custom-purple toggle bg-custom-purple`}
2626
/>
2727
</div>
2828
);

components/calculator/Inputs/SelectInput.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export const SelectInput: React.FC<Props> = React.memo(
2323
{label}
2424
</label>
2525
)}
26-
<p className="text-xs my-1 calcularor-label_description">
26+
<p className="text-xs my-1 calculator-label_description">
2727
{description}
2828
</p>
2929
<div className="grid">

components/calculator/Inputs/TextInput.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export const TextInput = ({
3535
{label}
3636
</label>
3737
)}
38-
<p className="text-xs my-1 calcularor-label_description">{description}</p>
38+
<p className="text-xs my-1 calculator-label_description">{description}</p>
3939

4040
<input
4141
{...otherProps}

dist/tsconfig.tsbuildinfo

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

keywords.config.yaml

Lines changed: 244 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,244 @@
1+
# Metadata Configuration for Documentation
2+
metadata_rules:
3+
# PERSONA
4+
persona:
5+
required: true
6+
multiple: true
7+
min: 1
8+
validation_rules:
9+
- enum:
10+
- app-developer
11+
- node-operator
12+
- chain-operator
13+
- partner
14+
- protocol-developer
15+
- auditor
16+
- governance-participant
17+
description: "Must select at least one valid persona"
18+
19+
# CONTENT TYPE
20+
content_type:
21+
required: true
22+
multiple: false
23+
validation_rules:
24+
- enum:
25+
- tutorial # step-by-step instructions
26+
- landing-page # navigation and overview pages
27+
- guide # general how-to content and concept exlainers
28+
- reference # technical specifications and API docs
29+
- troubleshooting # problem-solution focused
30+
- notice # Technical updates: breaking changes, upgrades, deprecations
31+
- announcement # Community/Governance updates: new programs, initiatives
32+
description: "Must select exactly one content type"
33+
34+
# TOPIC
35+
topic:
36+
required: true
37+
multiple: false
38+
validation_rules:
39+
- pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
40+
description: "Must be kebab-case, derived from page title"
41+
examples: ["standard-bridge", "account-abstraction", "ecotone-upgrade"]
42+
- unique: true
43+
description: "Topic must be unique across all pages"
44+
- max_length: 100
45+
description: "Topic should be concise"
46+
47+
# CATEGORIES
48+
categories:
49+
required: true
50+
multiple: true
51+
min: 1
52+
max: 5
53+
validation_rules:
54+
- no_duplicates: true
55+
description: "Categories must not repeat"
56+
- no_metadata_overlap:
57+
fields: ["topic", "content_type", "persona"]
58+
description: "Categories cannot repeat values used in topic, content_type, or persona"
59+
values:
60+
# Data Availability Layer
61+
- eth-da
62+
- alt-da
63+
- permissionless-batch-submission
64+
- block-times
65+
66+
# Sequencing Layer
67+
- sequencer
68+
- sequencer-pbs
69+
- sequencer-decentralization
70+
- sequencer-in-a-box
71+
- op-batcher
72+
73+
# Derivation Layer
74+
- rollup-node
75+
- fault-proofs
76+
- fp-contracts
77+
- op-challenger
78+
- cannon
79+
- zk
80+
- op-workbench # Tool: derivation testing & simulation
81+
82+
# Execution Layer
83+
- op-geth
84+
- op-reth
85+
- op-erigon
86+
- op-nethermind
87+
- evm-equivalence
88+
- precompiles
89+
- predeploys
90+
- preinstalls
91+
- custom-gas-token
92+
- l2-contracts
93+
- dev-console # Tool: execution layer interaction
94+
95+
# Settlement Layer
96+
- l1-contracts
97+
- standard-bridge
98+
- teleportr
99+
- interop
100+
- interoperability
101+
- cross-chain-messaging
102+
- interoperable-assets
103+
- op-deployer # Tool: contract deployment
104+
- op-supervisor
105+
106+
# Governance Layer
107+
- security-council
108+
- op-token
109+
- blockspace-charters
110+
- retro-funding
111+
- revshare-enshrinement
112+
- superchain-registry
113+
114+
# Cross-layer Development Tools
115+
- supersim # Tests across multiple layers
116+
- devnets # Full-stack local environment
117+
- performance-tooling # Stack-wide performance testing
118+
- superchain-registry # Chain management across layers
119+
- l1-deployment-upgrade-tooling # Cross-layer deployment
120+
- l2-deployment-upgrade-tooling # Cross-layer deployment
121+
122+
# Chain Management (Cross-layer)
123+
- protocol
124+
- infrastructure
125+
- op-proposer
126+
- op-supervisor
127+
- op-conductor
128+
- op-signer
129+
- mcp
130+
- mcp-l2
131+
- upgrade-standard-chains-stage-1
132+
- launch-new-chains-stage-1
133+
- automated-pause
134+
- dispute-mon
135+
- monitorism
136+
- vertical-scaling
137+
138+
# Protocol Releases
139+
- granite
140+
- holocene
141+
- isthmus
142+
- canyon
143+
- delta
144+
- ecotone
145+
- fjord
146+
- network-upgrade
147+
- hard-fork
148+
149+
# Infrastructure & Operations
150+
- kubernetes-infrastructure
151+
- devops-tooling
152+
- artifacts-packaging
153+
- peer-management-service
154+
- proxyd
155+
- zdd-service
156+
- snapman
157+
- op-beat
158+
- security-monitoring-response
159+
- stability-monitoring
160+
- security
161+
162+
# Development Languages & SDKs
163+
- solidity
164+
- typescript
165+
- javascript
166+
- go
167+
- rust
168+
- python
169+
- foundry
170+
- hardhat
171+
- ethers
172+
- viem
173+
- web3js
174+
- wagmi
175+
176+
# Development Environments
177+
- local-devnet
178+
- testnet
179+
- mainnet
180+
181+
# Superchain Categories
182+
- superchain-registry
183+
- security-council
184+
- blockspace-charters
185+
186+
# TIMEFRAME
187+
timeframe:
188+
required_for:
189+
- announcement
190+
- notice
191+
required: false
192+
multiple: false
193+
validation_rules:
194+
# Component versions
195+
- pattern: ^(op-\w+|cannon)/v\d+\.\d+\.\d+$
196+
description: "Component releases must be in format component/vX.Y.Z"
197+
examples: ["op-node/v1.11.0", "op-batcher/v1.11.1"]
198+
199+
# Release candidates
200+
- pattern: ^(op-\w+)/v\d+\.\d+\.\d+-rc\.\d+$
201+
description: "Release candidates must be in format component/vX.Y.Z-rc.N"
202+
examples: ["op-node/v1.11.0-rc.2"]
203+
204+
# Alpha/Beta versions
205+
- pattern: ^(op-\w+|cannon)/v\d+\.\d+\.\d+-(alpha|beta)\.\d+$
206+
description: "Alpha/Beta releases must be in format component/vX.Y.Z-{alpha|beta}.N"
207+
examples: ["cannon/v1.4.0-alpha.1"]
208+
209+
# Season format
210+
- pattern: ^S[6-9]|S[1-9][0-9]+$
211+
description: "Season numbers must start with 'S' followed by a number 6 or greater"
212+
examples: ["S6", "S7", "S8", "S10"]
213+
214+
# Calendar year
215+
- pattern: ^20(2[4-9]|[3-9][0-9])$
216+
description: "Years must be 2024 or later"
217+
examples: ["2024", "2025", "2026"]
218+
219+
# Half year
220+
- pattern: ^20(2[4-9]|[3-9][0-9])H[1-2]$
221+
description: "Half years must be in format YYYYH1 or YYYYH2"
222+
examples: ["2024H1", "2024H2", "2025H1"]
223+
224+
# Quarter
225+
- pattern: ^20(2[4-9]|[3-9][0-9])Q[1-4]$
226+
description: "Quarters must be in format YYYYQ1-Q4"
227+
examples: ["2024Q1", "2024Q2", "2025Q3"]
228+
229+
# Month
230+
- pattern: ^20(2[4-9]|[3-9][0-9])-(0[1-9]|1[0-2])$
231+
description: "Months must be in format YYYY-MM"
232+
examples: ["2024-01", "2024-12", "2025-06"]
233+
234+
# Protocol upgrades
235+
- enum:
236+
- bedrock
237+
- canyon
238+
- delta
239+
- ecotone
240+
- fjord
241+
- granite
242+
- holocene
243+
- isthmus
244+
description: "Protocol upgrade names must match exactly"

0 commit comments

Comments
 (0)