Skip to content

Commit 92f2157

Browse files
Migrate to uv and improve rate limit handling
- Switch from Poetry to uv for Python dependency management - Add retry logic with exponential backoff for GitHub rate limits - Reduce MAX_CONCURRENCY from 25 to 10 to avoid rate limits - Remove MAX_REPOSITORIES cap so all repos are processed - Sort repositories.toml alphabetically, add/remove some repos - Update CONTRIBUTING.md with uv setup instructions - Update frontend dependencies (nuxt, prettier, etc.)
1 parent 04f9298 commit 92f2157

File tree

9 files changed

+942
-764
lines changed

9 files changed

+942
-764
lines changed

CONTRIBUTING.md

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,16 @@ Thanks for your interest in contributing! This guide will help you get started.
77
Before you begin, make sure you have the following installed:
88

99
- **Node.js** (v18 or later) - [Download](https://nodejs.org/)
10-
- **Python 3** - [Download](https://www.python.org/downloads/)
1110
- **Bun** - A fast JavaScript runtime and package manager. Install it with:
1211
```bash
1312
curl -fsSL https://bun.sh/install | bash
1413
```
1514
Or see [bun.sh](https://bun.sh/) for other installation methods.
15+
- **uv** - A fast Python package manager. Install it with:
16+
```bash
17+
curl -LsSf https://astral.sh/uv/install.sh | sh
18+
```
19+
Or via Homebrew: `brew install uv`. See [docs.astral.sh/uv](https://docs.astral.sh/uv/) for details.
1620

1721
## Project Structure
1822

@@ -30,7 +34,15 @@ Good First Issue has two main components:
3034
cd good-first-issue
3135
```
3236

33-
2. **Set up sample data files**
37+
2. **Set up Python environment**
38+
39+
```bash
40+
uv sync --all-extras
41+
```
42+
43+
This creates a virtual environment and installs all dependencies.
44+
45+
3. **Set up sample data files**
3446

3547
The front-end app needs data files to display repositories. Copy the sample files to get started:
3648

@@ -43,13 +55,13 @@ Good First Issue has two main components:
4355
- `generated.json` - Repository metadata (stars, issues, languages, etc.)
4456
- `tags.json` - Language tags for filtering
4557

46-
3. **Install dependencies**
58+
4. **Install frontend dependencies**
4759

4860
```bash
4961
bun install
5062
```
5163

52-
4. **Start the development server**
64+
5. **Start the development server**
5365

5466
```bash
5567
bun dev
@@ -62,13 +74,25 @@ Good First Issue has two main components:
6274
To run the data sanity tests:
6375

6476
```bash
65-
python -m pytest gfi/test_data.py
77+
uv run python gfi/test_data.py
78+
```
79+
80+
To run type checking:
81+
82+
```bash
83+
uv run mypy gfi/*.py
84+
```
85+
86+
Or run both with:
87+
88+
```bash
89+
make test
6690
```
6791

68-
Or using unittest directly:
92+
## Formatting Code
6993

7094
```bash
71-
python gfi/test_data.py
95+
make format
7296
```
7397

7498
## Making Changes

Makefile

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,25 @@
11
.ONESHELL:
22
pre-build:
3-
pip install --upgrade poetry
4-
poetry install --no-root
3+
uv sync --all-extras
54

65
build:
76
bun install
87
bun generate
98

109
generate:
11-
poetry run python gfi/populate.py
10+
uv run python gfi/populate.py
1211

1312
generate-prod:
1413
bun install
1514
bun sync down
1615
bun generate
1716

1817
test:
19-
poetry run python gfi/test_data.py
20-
poetry run mypy gfi/*.py
18+
uv run python gfi/test_data.py
19+
uv run mypy gfi/*.py
2120

2221
format:
23-
poetry run ruff format .
22+
uv run ruff format .
2423
bunx prettier --write .
2524

2625
.DEFAULT_GOAL := build

bun.lockb

220 KB
Binary file not shown.

0 commit comments

Comments
 (0)