Skip to content

Commit 9bda249

Browse files
committed
docs: update contributing documentation and add repository structure details
1 parent 9231edd commit 9bda249

File tree

3 files changed

+45
-193
lines changed

3 files changed

+45
-193
lines changed

.github/CONTRIBUTING.md

Lines changed: 1 addition & 160 deletions
Original file line numberDiff line numberDiff line change
@@ -19,163 +19,4 @@ Thank you for your interest in contributing to ESLint React! This guide will hel
1919
- **Multiple Small Commits Allowed** - GitHub will squash before merging
2020
- **New Features** - Provide strong rationale, preferably with prior discussion
2121
- **Bug Fixes** - Include `(fix: #xxxx)` in your PR title and detailed description
22-
23-
## Repository Structure
24-
25-
### Local Packages
26-
27-
- `.pkgs/configs`: Workspace config bases
28-
- `.pkgs/eslint-plugin-local`: Internal workspace ESLint plugin
29-
30-
### Internal Packages
31-
32-
- **Utilities**
33-
- `packages/utilities/eff`: JavaScript and TypeScript utilities (previously some re-exports of the `effect` library)
34-
- `packages/utilities/ast`: TSESTree AST utility module for static analysis
35-
- `packages/utilities/var`: TSESTree AST utility module for static analysis of variables
36-
- `packages/utilities/jsx`: TSESTree AST utility module for static analysis of JSX
37-
- `packages/utilities/kit`: ESLint React's Plugin Kit for building plugins and rules
38-
- **Core & Shared**
39-
- `packages/core`: Utility module for static analysis of React core APIs and patterns
40-
- `packages/shared`: Shared constants, types and functions
41-
42-
### Public Packages
43-
44-
- **ESLint Plugins**
45-
- `eslint-plugin-react-x`: Core React rules
46-
- `eslint-plugin-react-dom`: React DOM rules
47-
- `eslint-plugin-react-web-api`: Web API interaction rules
48-
- `eslint-plugin-react-hooks-extra`: Extra React Hooks rules
49-
- `eslint-plugin-react-naming-convention`: Naming convention rules
50-
- `eslint-plugin-react-debug`: Debugging rules for inspecting React patterns in code
51-
- `eslint-plugin`: Main plugin combining all rules and presets from the above packages
52-
53-
### Documentation
54-
55-
- `apps/website`: Documentation website
56-
- `apps/playground`: Interactive playground (WIP)
57-
58-
## Repository Structure Diagram
59-
60-
```mermaid
61-
flowchart TB
62-
%% Monorepo
63-
subgraph "Monorepo"
64-
%% Apps Subgraph
65-
subgraph "Apps"
66-
Website["Website"]:::apps
67-
Playground["Playground"]:::apps
68-
end
69-
70-
%% Packages Subgraph
71-
subgraph "Packages"
72-
Core["Core Functionality"]:::packages
73-
Shared["Shared Utilities"]:::packages
74-
75-
%% Utilities Subgraph
76-
subgraph "Utilities Modules"
77-
AST["AST Module"]:::utilities
78-
Eff["Eff Module"]:::utilities
79-
JSX["JSX Module"]:::utilities
80-
Kit["Kit Module"]:::utilities
81-
Var["Var Module"]:::utilities
82-
end
83-
84-
%% ESLint Plugins Subgraph
85-
subgraph "ESLint Plugins"
86-
ReactX["eslint-plugin-react-x"]:::plugins
87-
ReactDOM["eslint-plugin-react-dom"]:::plugins
88-
WebAPI["eslint-plugin-react-web-api"]:::plugins
89-
HooksExtra["eslint-plugin-react-hooks-extra"]:::plugins
90-
NamingConvention["eslint-plugin-react-naming-convention"]:::plugins
91-
Aggregated["Aggregated Plugin (@eslint-react/eslint-plugin)"]:::plugins
92-
end
93-
end
94-
95-
%% Scripts & Configurations
96-
Scripts["Scripts & Configurations"]:::external
97-
98-
%% Tests
99-
Tests["Tests"]:::external
100-
end
101-
102-
%% Relationships
103-
%% Plugins depend on Core and Shared
104-
Core -->|"dependency"| ReactX
105-
Core -->|"dependency"| ReactDOM
106-
Core -->|"dependency"| WebAPI
107-
Core -->|"dependency"| HooksExtra
108-
Core -->|"dependency"| NamingConvention
109-
110-
Shared -->|"dependency"| ReactX
111-
Shared -->|"dependency"| ReactDOM
112-
Shared -->|"dependency"| WebAPI
113-
Shared -->|"dependency"| HooksExtra
114-
Shared -->|"dependency"| NamingConvention
115-
116-
%% Utilities used by Core and Plugins
117-
AST ---|"provides"| Core
118-
Eff ---|"provides"| Core
119-
JSX ---|"provides"| Core
120-
Kit ---|"provides"| Core
121-
Var ---|"provides"| Core
122-
123-
AST ---|"provides"| ReactX
124-
Eff ---|"provides"| ReactX
125-
JSX ---|"provides"| ReactX
126-
Kit ---|"provides"| ReactX
127-
Var ---|"provides"| ReactX
128-
129-
%% Aggregation of Plugins
130-
ReactX -->|"aggregated"| Aggregated
131-
ReactDOM -->|"aggregated"| Aggregated
132-
WebAPI -->|"aggregated"| Aggregated
133-
HooksExtra -->|"aggregated"| Aggregated
134-
NamingConvention -->|"aggregated"| Aggregated
135-
136-
%% Website Documentation uses Core and Shared docs
137-
Website -->|"docs"| Core
138-
Website -->|"docs"| Shared
139-
140-
%% Scripts & CI automation interactions
141-
Scripts -->|"CI/CD"| Core
142-
Scripts -->|"CI/CD"| Shared
143-
Scripts -->|"CI/CD"| AST
144-
Scripts -->|"CI/CD"| Eff
145-
Scripts -->|"CI/CD"| JSX
146-
Scripts -->|"CI/CD"| Kit
147-
Scripts -->|"CI/CD"| Var
148-
Scripts -->|"CI/CD"| ReactX
149-
Scripts -->|"CI/CD"| ReactDOM
150-
Scripts -->|"CI/CD"| WebAPI
151-
Scripts -->|"CI/CD"| HooksExtra
152-
Scripts -->|"CI/CD"| NamingConvention
153-
Scripts -->|"CI/CD"| Aggregated
154-
Scripts -->|"CI/CD"| Tests
155-
156-
%% Click Events
157-
click Website "https://github.com/rel1cx/eslint-react/tree/main/apps/website"
158-
click Playground "https://github.com/rel1cx/eslint-react/tree/main/apps/playground"
159-
click Core "https://github.com/rel1cx/eslint-react/tree/main/packages/core"
160-
click Shared "https://github.com/rel1cx/eslint-react/tree/main/packages/shared"
161-
click AST "https://github.com/rel1cx/eslint-react/tree/main/packages/utilities/ast"
162-
click Eff "https://github.com/rel1cx/eslint-react/tree/main/packages/utilities/eff"
163-
click JSX "https://github.com/rel1cx/eslint-react/tree/main/packages/utilities/jsx"
164-
click Kit "https://github.com/rel1cx/eslint-react/tree/main/packages/utilities/kit"
165-
click Var "https://github.com/rel1cx/eslint-react/tree/main/packages/utilities/var"
166-
click ReactX "https://github.com/rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x"
167-
click ReactDOM "https://github.com/rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom"
168-
click WebAPI "https://github.com/rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-web-api"
169-
click HooksExtra "https://github.com/rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-hooks-extra"
170-
click NamingConvention "https://github.com/rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-naming-convention"
171-
click Aggregated "https://github.com/rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin"
172-
click Scripts "https://github.com/rel1cx/eslint-react/tree/main/scripts"
173-
click Tests "https://github.com/rel1cx/eslint-react/tree/main/test"
174-
175-
%% Styles
176-
classDef apps fill:#f9e79f,stroke:#7d6608,stroke-width:2px;
177-
classDef packages fill:#aed6f1,stroke:#1b4f72,stroke-width:2px;
178-
classDef utilities fill:#a9dfbf,stroke:#145a32,stroke-width:2px;
179-
classDef plugins fill:#f5b7b1,stroke:#78281f,stroke-width:2px;
180-
classDef external fill:#d2b4de,stroke:#4a235a,stroke-width:2px;
181-
```
22+
- **Documentation Changes** - Include `(docs: #xxxx)` in your PR title and detailed description

apps/website/app/layout.config.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ export const baseOptions: BaseLayoutProps = {
2929
text: "Presets",
3030
url: "/docs/presets",
3131
},
32+
{
33+
active: "nested-url",
34+
text: "Contributing",
35+
url: "/docs/contributing",
36+
},
3237
{
3338
active: "nested-url",
3439
text: "Community",

apps/website/content/docs/contributing.mdx

Lines changed: 39 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -4,44 +4,17 @@ title: Contributing
44

55
Contributions are welcome!
66

7-
Please follow our [contributing guidelines](https://github.com/Rel1cx/eslint-react/blob/main/.github/CONTRIBUTING.md).
8-
9-
## Repository Structure
7+
## Getting Started
108

11-
### Local Packages
9+
To get started with the project, follow these steps:
1210

13-
- `.pkgs/configs`: Workspace config bases
14-
- `.pkgs/eslint-plugin-local`: Internal workspace ESLint plugin
15-
16-
### Internal Packages
17-
18-
- **Utilities**
19-
- `packages/utilities/eff`: JavaScript and TypeScript utilities (previously some re-exports of the `effect` library)
20-
- `packages/utilities/ast`: TSESTree AST utility module for static analysis
21-
- `packages/utilities/var`: TSESTree AST utility module for static analysis of variables
22-
- `packages/utilities/jsx`: TSESTree AST utility module for static analysis of JSX
23-
- `packages/utilities/kit`: ESLint React's Plugin Kit for building plugins and rules
24-
- **Core & Shared**
25-
- `packages/core`: Utility module for static analysis of React core APIs and patterns
26-
- `packages/shared`: Shared constants, types and functions
27-
28-
### Public Packages
29-
30-
- **ESLint Plugins**
31-
- `eslint-plugin-react-x`: Core React rules
32-
- `eslint-plugin-react-dom`: React DOM rules
33-
- `eslint-plugin-react-web-api`: Web API interaction rules
34-
- `eslint-plugin-react-hooks-extra`: Extra React Hooks rules
35-
- `eslint-plugin-react-naming-convention`: Naming convention rules
36-
- `eslint-plugin-react-debug`: Debugging rules for inspecting React patterns in code
37-
- `eslint-plugin`: Main plugin combining all rules and presets from the above packages
11+
Please follow our [contributing guidelines](https://github.com/Rel1cx/eslint-react/blob/main/.github/CONTRIBUTING.md).
3812

39-
### Documentation
13+
## Reference
4014

41-
- `apps/website`: Documentation website
42-
- `apps/playground`: Interactive playground (WIP)
15+
This section provides a reference to the repository structure and the relationships between different components.
4316

44-
## Repository Structure Diagram
17+
### Monorepo Structure
4518

4619
```mermaid
4720
flowchart TB
@@ -165,3 +138,36 @@ flowchart TB
165138
classDef plugins fill:#f5b7b1,stroke:#78281f,stroke-width:2px;
166139
classDef external fill:#d2b4de,stroke:#4a235a,stroke-width:2px;
167140
```
141+
142+
### Local Packages
143+
144+
- `.pkgs/configs`: Workspace config bases
145+
- `.pkgs/eslint-plugin-local`: Internal workspace ESLint plugin
146+
147+
### Internal Packages
148+
149+
- **Utilities**
150+
- `packages/utilities/eff`: JavaScript and TypeScript utilities (previously some re-exports of the `effect` library)
151+
- `packages/utilities/ast`: TSESTree AST utility module for static analysis
152+
- `packages/utilities/var`: TSESTree AST utility module for static analysis of variables
153+
- `packages/utilities/jsx`: TSESTree AST utility module for static analysis of JSX
154+
- `packages/utilities/kit`: ESLint React's Plugin Kit for building plugins and rules
155+
- **Core & Shared**
156+
- `packages/core`: Utility module for static analysis of React core APIs and patterns
157+
- `packages/shared`: Shared constants, types and functions
158+
159+
### Public Packages
160+
161+
- **ESLint Plugins**
162+
- `eslint-plugin-react-x`: Core React rules
163+
- `eslint-plugin-react-dom`: React DOM rules
164+
- `eslint-plugin-react-web-api`: Web API interaction rules
165+
- `eslint-plugin-react-hooks-extra`: Extra React Hooks rules
166+
- `eslint-plugin-react-naming-convention`: Naming convention rules
167+
- `eslint-plugin-react-debug`: Debugging rules for inspecting React patterns in code
168+
- `eslint-plugin`: Main plugin combining all rules and presets from the above packages
169+
170+
### Documentation
171+
172+
- `apps/website`: Documentation website
173+
- `apps/playground`: Interactive playground (WIP)

0 commit comments

Comments
 (0)