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
Copy file name to clipboardExpand all lines: website/community/how-to-contribute/contribute-docs.md
+148-1Lines changed: 148 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,5 +21,152 @@ sidebar_position: 1
21
21
22
22
# Contribute Documentation
23
23
24
-
TODO
24
+
The Fluss website serves as the primary interface between the project and its community, with several key purposes:
25
25
26
+
* Introducing Fluss as a streaming storage solution for real-time analytics
27
+
* Providing technical documentation for users and developers
28
+
* Facilitating downloads and deployment guidance
29
+
* Fostering community engagement and contributions
30
+
* Showcasing Fluss features, use cases, and roadmap
31
+
32
+
This website is built with Docusaurus, a modern static website generator optimized for documentation. For advanced features and tools, visit the [official Docusaurus documentation](https://docusaurus.io/).
33
+
34
+
This guide will walk you through the process of contributing to the Fluss documentation, from setting up your environment to submitting your changes.
35
+
36
+
## Build Documentation
37
+
38
+
### Fork and Clone
39
+
Fork the [Fluss repository](https://github.com/alibaba/fluss)
├── blog/ # Release and feature blogs (not versioned)
67
+
├── community/ # Community content (not versioned)
68
+
├── static/ # Static assets
69
+
│ └── img/ # Images for documentation
70
+
├── versioned_docs/ # Previous versions of documentation
71
+
│ ├── version-0.6/
72
+
│ └── version-0.5/
73
+
├── versioned_sidebars/ # Sidebar configurations for different versions
74
+
├── src/ # Source files for the website
75
+
│ └── plugins/ # Custom plugins including version replacement
76
+
├── build_versioned_docs.sh # Script for building versioned docs
77
+
├── docusaurus.config.ts # Main configuration for Docusaurus website
78
+
├── sidebars.ts # Sidebar configuration
79
+
└── package.json # Node.js dependencies and scripts
80
+
```
81
+
82
+
### Validation (including versioned docs)
83
+
- Edit or create Markdown files in the appropriate directories
84
+
- Generate versioned docs (simulates what CI does)
85
+
```bash
86
+
./build_versioned_docs.sh
87
+
```
88
+
- Then build the complete site which checks broken links
89
+
```bash
90
+
npm run build -- --no-minify
91
+
```
92
+
93
+
### Preview Changes
94
+
- Start the local development server to preview changes
95
+
```bash
96
+
npm run start
97
+
```
98
+
- View your changes at [http://localhost:3000/fluss-docs/](http://localhost:3000/fluss-docs/)
99
+
100
+
## Versioned Documentation
101
+
- Only content in `website/docs/* `is versioned
102
+
- Each version corresponds to a branch (e.g., release-0.5, release-0.6)
103
+
- Fixes for `website/docs/*` documentation related to old versions should be backported to their corresponding release-x.y branches
104
+
- The main branch contains the latest (unreleased) documentation
105
+
- Other pages (community, roadmap) are only maintained in the main branch
106
+
107
+
### Updating Existing Versions
108
+
- Checkout the corresponding release branch
109
+
```bash
110
+
git checkout release-0.5
111
+
```
112
+
- Make changes to files in `website/docs/`
113
+
- Create a pull request to that specific release branch
114
+
115
+
### Version Expressions
116
+
Fluss documentation uses placeholder variables that are automatically replaced during the build process. Note that these variables are only available for documentation under `website/docs/*`.
117
+
-`$FLUSS_VERSION$`: Expands to the full version (e.g., "0.6.0")
118
+
-`$FLUSS_VERSION_SHORT$`: Expands to the short version (e.g., "0.6")
119
+
120
+
For example, to link to a specific version of Fluss binary:
121
+
122
+
```bash
123
+
tar -xzf fluss-$FLUSS_VERSION$-bin.tgz
124
+
```
125
+
126
+
The above code block will be rendered as follows for 0.6 version:
127
+
128
+
```bash
129
+
tar -xzf fluss-0.6.0-bin.tgz
130
+
```
131
+
132
+
## Documentation Linking
133
+
134
+
### Do's
135
+
- Use file paths with .md extensions
136
+
```markdown
137
+
[Table Design](table-design/overview.md)
138
+
```
139
+
140
+
- Use paths relative to the docs/ directory
141
+
```markdown
142
+
[Flink Engine](engine-flink/getting-started.md)
143
+
```
144
+
145
+
146
+
### Don'ts
147
+
- Use absolute links like `/docs/` or `/blog/`
148
+
- Use URLs without file extensions
149
+
150
+
### Link Validation
151
+
- Pull request CI checks for broken links using `.github/workflows/docs-check.yaml`
152
+
- Fix any broken links identified in the CI build
153
+
- Test locally with `npm run build` in the website directory
154
+
155
+
## Submitting Your Contribution
156
+
1. Commit your changes with a descriptive message:
157
+
```bash
158
+
git add .
159
+
git commit -m "[docs]: add/update documentation for feature..."
160
+
```
161
+
2. Push to your fork:
162
+
```bash
163
+
git push origin feature-branch-name
164
+
```
165
+
3. Create a pull request on GitHub from your branch to the appropriate branch
166
+
- For latest docs: target the main branch
167
+
- For version-specific changes: target the specific release-x.y branch
168
+
169
+
## Deployment Process
170
+
- The `.github/workflows/docs-deploy.yaml` workflow automatically deploys documentation
171
+
- Triggers when changes are pushed to `website/*` in any `release-*` branches or `main`
172
+
- Runs `build_versioned_docs.sh` to collect versioned docs from all release branches
0 commit comments