Skip to content

Commit f852837

Browse files
Bingxi ZhaoBingxi Zhao
authored andcommitted
update docs
1 parent f6235d7 commit f852837

9 files changed

Lines changed: 72 additions & 48 deletions

File tree

.github/workflows/update-roster.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: Update Repo Roster
22

33
on:
4-
# Run every 2 hours
4+
# Run twice a day (at 00:00 and 12:00 UTC)
55
schedule:
6-
- cron: '0 */2 * * *'
6+
- cron: '0 0,12 * * *'
77
# Allow manual trigger
88
workflow_dispatch:
99
# Run when stars/forks might change (on push to main)

CONTRIBUTING.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,8 @@ We use automated tools to maintain code quality:
2222
- **detect-secrets** — Security scanning
2323

2424
> [!IMPORTANT]
25-
> **Before submitting a PR, you MUST run:**
26-
> ```bash
27-
> pre-commit run --all-files
28-
> ```
25+
> **Before submitting a PR, you MUST run:** `pre-commit run --all-files`
26+
>
2927
> CI will automatically check this and **reject PRs** that fail pre-commit checks.
3028
3129
### Setting Up Pre-commit (First Time Only)

README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,6 @@
225225
## 📋 Todo
226226

227227
> 🌟 Star to follow our future updates!
228-
- [-] Support Local LLM Services (e.g., ollama)
229228
- [-] Refactor RAG Module (see [Discussions](https://github.com/HKUDS/DeepTutor/discussions))
230229
- [ ] Deep-coding from idea generation
231230
- [ ] Personalized Interaction with Notebook

assets/roster/forkers.svg

Lines changed: 7 additions & 7 deletions
Loading

assets/roster/stargazers.svg

Lines changed: 1 addition & 1 deletion
Loading

docs/.vitepress/config.mts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export default defineConfig({
6767

6868
footer: {
6969
message: 'Released under the AGPL-3.0 License.',
70-
copyright: 'Copyright © 2024-2025 HKUDS'
70+
copyright: 'Copyright © 2025-2026 DeepTutor Team @ HKU'
7171
},
7272

7373
search: {

docs/community/contributing.md

Lines changed: 44 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# Contributing
22

3-
Thank you for your interest in contributing to DeepTutor! 🎉
3+
Thank you for your interest in contributing to DeepTutor! That means a lot for our team! 🎉
44

5-
We welcome contributions from the community! To ensure code quality and consistency, please follow the guidelines below.
5+
You can join our [Discord community](https://discord.gg/aka9p9EW) for further discussion.
66

77
## Ways to Contribute
88

@@ -11,6 +11,15 @@ We welcome contributions from the community! To ensure code quality and consiste
1111
- 📖 **Improve docs** — Fix typos, add examples
1212
- 🔧 **Submit PRs** — Code contributions welcome!
1313

14+
## 🔄 Pull Request Process
15+
16+
1. **Create a branch**: `git checkout -b feature/your-feature`
17+
2. **Make changes**: Follow existing code style and conventions
18+
3. **Test locally**: Ensure your changes work correctly
19+
4. **Run pre-commit**: `pre-commit run --all-files` ⚠️ **Required before PR!**
20+
5. **Commit**: Pre-commit hooks will auto-format your code
21+
6. **Push & PR**: Open a pull request with a clear description
22+
1423
## Development Setup
1524

1625
### 1. Fork and Clone
@@ -56,7 +65,9 @@ pre-commit install
5665
pre-commit run --all-files
5766
```
5867

59-
## Code Quality Tools
68+
> After installing Git hooks, they will run **automatically** on every commit — no need to remember!
69+
70+
## 🛠️ Code Quality Tools
6071

6172
We use automated tools to maintain code quality:
6273

@@ -66,7 +77,11 @@ We use automated tools to maintain code quality:
6677
| **Prettier** | Frontend code formatting | `web/.prettierrc.json` |
6778
| **detect-secrets** | Security check | `.secrets.baseline` |
6879

69-
> **Note**: The project uses **Ruff format** instead of Black to avoid formatting conflicts.
80+
::: warning IMPORTANT
81+
**Before submitting a PR, you MUST run:** `pre-commit run --all-files`
82+
83+
CI will automatically check this and **reject PRs** that fail pre-commit checks.
84+
:::
7085

7186
Every time you run `git commit`, pre-commit hooks will automatically:
7287
- Format Python code with Ruff
@@ -75,21 +90,15 @@ Every time you run `git commit`, pre-commit hooks will automatically:
7590
- Validate YAML/JSON files
7691
- Detect potential security issues
7792

78-
## Pull Request Process
79-
80-
1. **Create Branch**: `git checkout -b feature/amazing-feature`
81-
2. **Make Changes**: Write your code following the project's style
82-
3. **Test**: Ensure your changes work correctly
83-
4. **Commit**: Pre-commit hooks will automatically format your code
84-
5. **Push and PR**: Push to your fork and create a Pull Request
93+
> **Note**: The project uses **Ruff format** instead of Black to avoid formatting conflicts.
8594
86-
### Common Commands
95+
## Common Commands
8796

8897
```bash
89-
# Normal commit (hooks run automatically)
98+
# Normal commit (hooks run automatically if installed)
9099
git commit -m "Your commit message"
91100

92-
# Manually check all files
101+
# Manually check all files (do this before pushing!)
93102
pre-commit run --all-files
94103

95104
# Update hooks to latest versions
@@ -99,15 +108,26 @@ pre-commit autoupdate
99108
git commit --no-verify -m "Emergency fix"
100109
```
101110

102-
## Contribution Guidelines
111+
## 📋 Commit Message Format
112+
113+
```
114+
<type>: <short description>
115+
116+
[optional body]
117+
118+
[optional footer(s)]
119+
```
120+
121+
**Types**: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore`
103122

104-
1. **Fork and Clone**: Fork the repository and clone your fork
105-
2. **Create Branch**: Create a feature branch from `main`
106-
3. **Install Pre-commit**: Follow the setup steps above
107-
4. **Make Changes**: Write your code following the project's style
108-
5. **Test**: Ensure your changes work correctly
109-
6. **Commit**: Pre-commit hooks will automatically format your code
110-
7. **Push and PR**: Push to your fork and create a Pull Request
123+
**Examples**:
124+
- `feat`: for a new feature (MINOR version bump)
125+
- `fix`: for a bug fix (PATCH version bump)
126+
- `docs`: for documentation-only changes
127+
- `style`: for formatting changes (whitespace, semicolons)
128+
- `refactor`: for code changes that neither fix a bug nor add a feature
129+
- `test`: for adding or correcting tests
130+
- `chore`: for routine tasks (build processes, dependencies)
111131

112132
## Reporting Issues
113133

@@ -122,8 +142,9 @@ Please be respectful and inclusive. We're building a welcoming community for lea
122142
## Questions?
123143

124144
- Open a [GitHub Discussion](https://github.com/HKUDS/DeepTutor/discussions)
145+
- Join our [Discord Community](https://discord.gg/aka9p9EW)
125146
- Check existing issues for similar questions
126147

127148
---
128149

129-
❤️ Thank you for helping make DeepTutor better!
150+
### Let's build a tutoring system for the whole community TOGETHER! 🚀

docs/roadmap.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,10 @@ Our vision for DeepTutor's future development.
44

55
## 🚀 Planned Features
66

7-
- [ ] **Project-based Learning** -- Generate incomplete coding projects for hands-on learning
8-
- [ ] **Deepcoding from Idea Generation** -- Transform research ideas into working prototypes
9-
- [ ] **Personalized Memory** -- Adapt tutoring style based on user learning history
10-
- [ ] **Docker Support** -- Containerized deployment
11-
- [ ] **Alternative RAG Techniques** -- More choice of base RAG methods.
12-
- [ ] **Local LLM Deployment** -- Support local LLM choice (e.g., Ollama)
7+
- [ ] **Deepcoding from Idea Generation** — Transform research ideas into working prototypes
8+
- [ ] **Personalized Memory** — Adapt tutoring style based on user learning history
9+
- [ ] **Alternative RAG Techniques** — More choice of base RAG methods
10+
1311

1412
## 💭 Under Consideration
1513

scripts/generate_roster.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,14 @@
1212
from concurrent.futures import ThreadPoolExecutor, as_completed
1313
import json
1414
import os
15+
import ssl
1516
import urllib.request
1617

18+
# Create SSL context that doesn't verify certificates (for macOS compatibility)
19+
ssl_context = ssl.create_default_context()
20+
ssl_context.check_hostname = False
21+
ssl_context.verify_mode = ssl.CERT_NONE
22+
1723

1824
def fetch_github_api(url: str, token: str = None, count_only: bool = False) -> tuple:
1925
"""Fetch data from GitHub API with pagination. Returns (users, total_count)."""
@@ -31,7 +37,7 @@ def fetch_github_api(url: str, token: str = None, count_only: bool = False) -> t
3137
req = urllib.request.Request(paginated_url, headers=headers)
3238

3339
try:
34-
with urllib.request.urlopen(req, timeout=30) as response:
40+
with urllib.request.urlopen(req, timeout=30, context=ssl_context) as response:
3541
data = json.loads(response.read().decode())
3642
if not data:
3743
break
@@ -48,7 +54,9 @@ def fetch_github_api(url: str, token: str = None, count_only: bool = False) -> t
4854
paginated_url = f"{url}?per_page={per_page}&page={page}"
4955
req = urllib.request.Request(paginated_url, headers=headers)
5056
try:
51-
with urllib.request.urlopen(req, timeout=30) as resp:
57+
with urllib.request.urlopen(
58+
req, timeout=30, context=ssl_context
59+
) as resp:
5260
more_data = json.loads(resp.read().decode())
5361
if not more_data:
5462
break
@@ -74,7 +82,7 @@ def fetch_avatar_as_base64(avatar_url: str, size: int = 48) -> str:
7482
avatar_url += f"?s={size}"
7583

7684
req = urllib.request.Request(avatar_url, headers={"User-Agent": "Repo-Roster-Generator"})
77-
with urllib.request.urlopen(req, timeout=10) as response:
85+
with urllib.request.urlopen(req, timeout=10, context=ssl_context) as response:
7886
data = response.read()
7987
content_type = response.headers.get("Content-Type", "image/png")
8088
base64_data = base64.b64encode(data).decode("utf-8")

0 commit comments

Comments
 (0)